bockionline
17-09-2003, 12:13
Hallo,
ich bin dabei mir eine Benutzeranmeldung mit PHP und Datei als "Benutzerdatenbank" zu bauen. Leider funktioniert das Script nicht ganz so wie ich möchte:
<?php
// Datei mit Benutzernamen und Kennwörtern, wie: benutzer=kennwort
$userdb_file = file ('sec/passwd.txt');
// Grundeinstellung ob Benutzer bekannt: nein
$knownuser = "false";
// Wurde vorgeschaltetes Formular ausgefüllt?
if ( isset($name) && isset($passwort) && $name != "" && $passwort != "" )
{
// ja: Extrahiere aus den Zeilen der Datei Benutzernamen und Kennwort
foreach ($userdb_file as $user_num => $user_string)
{
// $user_string wird in Name $userdb_array[0] und Passwort $userdb_array[1] aufgeteilt
$userdb_array = explode ("=",$user_string);
// Wenn eingegebener Name $name und Passwort $passwort mit einem Paar aus der Datei übereinstimmt,
// setze Einstellung, dass Benutzer bekannt
if ( $name == $userdb_array[0] && $passwort == $userdb_array[1] )
{
$knownuser = "true";
}
}
}
else
{
//nein: Meldung ausgeben
echo "Nicht angemeldet.";
}
if ($knownuser == "true")
{
echo "Validierter User";
}
else
{
echo "Nicht angemeldet!";
}
?>Die Passwortdatei sieht folgendermaßen aus:
benutzer1=passwort1
benutzer2=passwort2
benutzer3=passwort3Mein Problem ist, dass man sich immer nur als der Benutzer, der als letztes in der Passwortdatei genannt wird, anmelden kann (in meinem Beispiel also als "benutzer3"). Woran liegt das und wie muss ich das foreach-Konstrukt abwandeln, dass es mit allen Benutzern geht?
Vielen Dank,
bockionline
EDIT: Rechtschreibfehler
ich bin dabei mir eine Benutzeranmeldung mit PHP und Datei als "Benutzerdatenbank" zu bauen. Leider funktioniert das Script nicht ganz so wie ich möchte:
<?php
// Datei mit Benutzernamen und Kennwörtern, wie: benutzer=kennwort
$userdb_file = file ('sec/passwd.txt');
// Grundeinstellung ob Benutzer bekannt: nein
$knownuser = "false";
// Wurde vorgeschaltetes Formular ausgefüllt?
if ( isset($name) && isset($passwort) && $name != "" && $passwort != "" )
{
// ja: Extrahiere aus den Zeilen der Datei Benutzernamen und Kennwort
foreach ($userdb_file as $user_num => $user_string)
{
// $user_string wird in Name $userdb_array[0] und Passwort $userdb_array[1] aufgeteilt
$userdb_array = explode ("=",$user_string);
// Wenn eingegebener Name $name und Passwort $passwort mit einem Paar aus der Datei übereinstimmt,
// setze Einstellung, dass Benutzer bekannt
if ( $name == $userdb_array[0] && $passwort == $userdb_array[1] )
{
$knownuser = "true";
}
}
}
else
{
//nein: Meldung ausgeben
echo "Nicht angemeldet.";
}
if ($knownuser == "true")
{
echo "Validierter User";
}
else
{
echo "Nicht angemeldet!";
}
?>Die Passwortdatei sieht folgendermaßen aus:
benutzer1=passwort1
benutzer2=passwort2
benutzer3=passwort3Mein Problem ist, dass man sich immer nur als der Benutzer, der als letztes in der Passwortdatei genannt wird, anmelden kann (in meinem Beispiel also als "benutzer3"). Woran liegt das und wie muss ich das foreach-Konstrukt abwandeln, dass es mit allen Benutzern geht?
Vielen Dank,
bockionline
EDIT: Rechtschreibfehler