$pw != $pw_correct?

Alles, was PHP betrifft, kann hier besprochen werden.

$pw != $pw_correct?

Postby newby » 18. February 2007 13:18

hi, ich hab hier ein login script, dass die userdaten aus einer txtdatei ausließt
und dann auf Richtigkeit überprüft, aber irgendwie sag er immer Passwort falsch, obwohol es richtig ist! Könnt ihr mir vielleicht helfen?

Code: Select all
<?php

$_name = $_POST[name];
$_pw = $_POST[pw];
$_name_big = strtoupper($_name);
$_user = "#user/";
$_txt = ".txt";
$_pfad = $_user.$_name_big.$_txt;



if(file_exists($_pfad)){
$_datei = file($_pfad);
$_pw_correct = $_datei[1];
}






if(empty($_name)){
echo("Bitte geben sie einen Namen ein!<br><a href=\"index.html\">Zum Login</a>");
}
elseif(empty($_pw)){
echo("Bitte geben sie einen Passwort ein!<br><a href=\"index.html\">Zum Login</a>");
}
elseif(!file_exists($_pfad)){
echo("User existiert nicht!<br><a href=\"index.html\">Zum Login</a>");
}
elseif($_pw != $_pw_corect){
echo("Passwort falsch!<br><a href=\"index.html\">Zum Login</a>");
echo($_pw);
echo($_pw_correct);
}
else{
echo("richtig");
}


?>



(sagt mir jetzt bitte nicht ich soll die Unterstriche lassen!)
newby
 
Posts: 105
Joined: 16. July 2006 10:53

Postby Wiedmann » 18. February 2007 14:06

$_name = $_POST[name];
$_pw = $_POST[pw];

Hier fehlen Quotes bei den Arrayschlüsseln:
Code: Select all
$_name = $_POST['name'];
$_pw = $_POST['pw'];


Code: Select all
elseif($_pw != $_pw_corect){

aber irgendwie sag er immer Passwort falsch

Dann solltest du mal schauen, was da so drin ist:
Code: Select all
echo '<pre>';
var_dump($_pw);
var_dump($_pw_corect);
echo '</pre>';

(an passender Stelle ins Script einfügen)

BTW:
Zum Scripte enwicken hast du dein ErrorReporting entsprechend angepasst (php.ini)? Ansonsten schriebe als erste Anweisung immer mal ein:
Code: Select all
error_reporting(E_ALL);

in dein Script.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby newby » 18. February 2007 17:43

ok, ich hab den fehler gefunden, weiß aber nicht, wie ich ihn beheben kann.
$_datei = file($_pfad);
$_pw_correct = $_datei[1];


hier lese ich das passwort aus der datei, aber er ließt am ende der zeile den zeilenumbruch mit, wisst ihr, wie ich es schaffe, dass er am ende der Zeile den Zeilenumbruch wegbekomme?


bei:
echo '<pre>';
var_dump($_pw);
var_dump($_pw_corect);
echo '</pre>';

hab ich folgendes bekommen:

string(5) "test"
string(7) "test
"

hinter dem zweiten test ist also ein Zeilenumbruch! der muss weg! aber wie?[/quote]
newby
 
Posts: 105
Joined: 16. July 2006 10:53

Postby Wiedmann » 18. February 2007 17:50

wisst ihr, wie ich es schaffe, dass er am ende der Zeile den Zeilenumbruch wegbekomme?

Mir ist so, als hätte ich im PHP-Manual, auf der Seite wo die Stringfunktionen aufglistet sind (mit Kurzbeschreibung), letztens so eine Funktion gesehen...

hinter dem zweiten test ist also ein Zeilenumbruch!

Darauf würde ich auch erst einmal tippen. (steht auch bei der Funktion file(), dass dieser mit übernommen wird (und was man dagegen tun kann)).
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby newby » 18. February 2007 17:55

ok, danke für die hilfe, funktioniert super mit trim();
newby
 
Posts: 105
Joined: 16. July 2006 10:53


Return to PHP

Who is online

Users browsing this forum: No registered users and 33 guests