Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
loginscript über textdatei: Fehler beim Login (Verleich von Variablen) [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
loginscript über textdatei: Fehler beim Login (Verleich von Variablen)


 
dp.de
10-09-2006, 18:11 
 
Hallo Leute!

Ich habe ein Loginscript welches aus einer Textdatei Benuterdaten ausließt. Ich übergebe aus der form die Daten aus den Textfeldern. Jetzt will ich vergleichen ob die Benutzerdaten die der Benutzer eingegeben hat den Daten in der Benutzerdatei entpsrechen, leider schlägt hier der Vergleich fehl. Der aktive Vergleich scheint nicht zu funktionieren da er nicht in die Abfrage rein springt. Der Vergleich über die Variable $treffer liefert einen Wert > 0 zurück sollte aber == 0 sein. Wer hat da eine Idee wo hier der Fehler liegt?


// Session starten
session_start ();

$go = 0;
//$treffer = 0;

//überprüfung der eingabe
if( isset($_POST['login'], $_POST['pwd'])
AND
strcmp(trim($_POST['login']),'') != 0
AND
strcmp(trim($_POST['pwd']),'') != 0 )

{

// config
include("config.cfg");

//textdatei auslesen und user abgleich
$fp = fopen($userinfo,"r");
if ($fp)
{
while (!feof($fp))
{
$zeile = fgets($fp, 100);
}
fclose($fp);
}


$loginwert .= $_POST['login'];
$loginwert .= ":";
$loginwert .= $_POST['pwd'];

if(file_exists($userinfo))
{
$inhalt = file($userinfo);
$anzahl = count($inhalt);
for($i = 0; $i < $anzahl; $i++)
{
# inhalt auslesen
$newinhalt = array_values($inhalt);
# inhalt zerteilen
$eintrag = explode(":",$newinhalt[$i]);
# variabeln defenieren
$usrname = $eintrag[0];
$usrpw = $eintrag[1];

$logmatch = $usrname;
$logmatch .= ":";
$logmatch .= $usrpw;

$treffer = strcmp($loginwert,$logmatch);

if ($loginwert == $newinhalt[$i])
//if ($treffer > 0)
{
$go = 1;
break;
}

}
}

if ($go == 1)
{
// Sessionvariablen erstellen und registrieren
$_SESSION["user_login"] = $_POST['login'];
$_SESSION["user_pwd"] = $_POST['pwd'];

header ("Location: selection.php");
}
else
{
header ("Location: index.php?fehler=1");
}

}
else
{
header ("Location: index.php?fehler=1");
}

 
Kropff
10-09-2006, 20:25 
 
1. wo definierst du $userinfo?
2. hier wird die variable jedesmal überschriben!

while (!feof($fp))
{
$zeile = fgets($fp, 100);
}
3. welchen zweck hat überhaupt dieses while schleife?
4. was machst du denn hier?
$eintrag = explode(":",$newinhalt[$i]);
# variabeln defenieren
$usrname = $eintrag[0];
$usrpw = $eintrag[1];

$logmatch = $usrname;
$logmatch .= ":";
$logmatch .= $usrpw;
erst dröselt du etwas auf (explode) und fügst es dann wieder genau so zusammen, wie es vorher war.
6. gehört das nicht vor die for-schleife? ist das nicht überflüssig?
$newinhalt = array_values($inhalt);
7. sollte schon ausreichen
$eintrag = explode(":",$inhalt[$i]);
irgendwo scheint da hinten und vorne die logik zufehlen.

gruß
peter

 
dp.de
16-09-2006, 19:34 
 
Also ich hab jetzt mal einige Änderungen an dem Script vorgenommen. Aber ich hab noch ein Problem mit der Abfrage wo das Password überprüft werden soll. Wenn ich mit echo die Variablen ausgebe dann stimmen die Werte aber die Abfrage wird einfach nicht korrekt ausgeführt.

Hier mal der Teil der Probleme macht. Die Erste Abfrage funktioniert, aber die 2te wird nicht ausgeführt.


if($_POST['login']==$usrname)
{
//echo "OK </br>";
if((string)$_POST['passwd']==(string)$usrpw)
{
//echo "go </br>";
$go = 1;
break;
}
//else
//echo "fehler bei go </br>";
}



Und hier das ganze Script:



<?

// Session starten
session_start ();

$go = 0;

//überprüfung der eingabe
if( isset($_POST['login'], $_POST['passwd'])
AND
strcmp(trim($_POST['login']),'') != 0
AND
strcmp(trim($_POST['passwd']),'') != 0 )

{

// config
include("config.cfg");

if(file_exists($userinfo))
{
# Datei auslesen
$inhalt = file($userinfo);
$anzahl = count($inhalt);
$newinhalt = array_values($inhalt);

for($i = 0; $i < $anzahl; $i++)
{
# inhalt zerteilen
$eintrag = explode(":",$newinhalt[$i]);
# variabeln defenieren
$usrname = $eintrag[0];
//echo "eintrag[0]: " . $usrname . "</br>";
$usrpw = $eintrag[1];
//echo "eintrag[1]: " . $usrpw . "</br>";

//$treffer = strcmp($loginwert,$logmatch);

//echo "POST[login]: " . $_POST['login'] . "</br>";
//echo "POST[pwd]: " . $_POST['pwd'] . "</br>";

//echo "Vergleich: " . $_POST['login'] . " " . $usrname. "</br>";
//echo "Vergleich: " . $_POST['pwd'] . " " . $usrpw . "</br>";

//if((string)$_POST['login']==(string)$usrname || (string)$_POST['pwd']==(string)$usrpw)
if($_POST['login']==$usrname)
{
//echo "OK </br>";
if((string)$_POST['passwd']==(string)$usrpw)
{
//echo "go </br>";
$go = 1;
break;
}
//else
//echo "fehler bei go </br>";
}

}
}

if ($go == 1)
{
// Sessionvariablen erstellen und registrieren
$_SESSION["user_login"] = $_POST['login'];
$_SESSION["user_pwd"] = $_POST['pwd'];

header ("Location: selection.php");
}
else
{
header ("Location: index.php?fehler=1");
}

}
else
{
header ("Location: index.php?fehler=1");
}

?>

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:43 Uhr.