Textdatei durchsuchen nach username und passwort

Systemcrash

Mitglied
Hallo,
Wie kann ich denn eine Textadei die so aufgebaut ist:

Systemcrash<-->passwort1
Systemcrash2<-->passwort2

usw...

Soll ein Loginscript sein,
Man gibt username ein und dann soll er als erstes
prüfen ob der name schon existiert.
aber wie?

Danke im vorraus
 
PHP:
<?
$users = file("users.txt");

foreach ($users as $user) {
	list($usernames[], $userpasswords[]) = explode("<-->", trim($user));
}

if (!in_array($form_username, $usernames)) {
	echo "Username unbekannt!";	
}
else {
	$usernumber = array_search($form_username, $usernames);
	if ($form_password != $userpasswords[$usernumber]) {
		echo "Username $form_username bekannt, aber falsches Passwort!";
	}
	else {
		echo "Hallo $form_username! Du hast dich erfolgreich eingeloggt.";
	}
}
?>
Keine Garantie, hab's nicht getestet.


reima
 
also ich würde es nicht so wie du mit 1 Datei lösen. Ich würde da einen neuen Ordner "members" machen und jeder, der sich registriert macht eine Datei $username.php im Ordner members. In dieser Datei steht dann z.B. nur $passwort = dasPasswort;

dann machst du die Abfrage so (beim Formular gibt der User die Variablen $username und $pw an):

PHP:
if (!file_exists("members/$username.php")) {
    echo "Unbekannter User";
    }

else {
    include ("members/$username.php");

    if ($pw != $passwort) {
    echo "Falsches Passwort";
    }

    else {
    echo "Willkommen, $username! Du hast dich nun eingeloggt.";
    }
}
 
@Hätti: Hm... würde ich nicht so machen. Erstens mal weil man generell keinen PHP-Code mit PHP-Code erzeugen sollte.

Beim Erstellen einer neuen User-PHP-Datei müsste zusätzliche Sicherheitsvorkehrungen einbauen, die es dem User unmöglich machen, sein Passwort so zu wählen, dass in dieser neuen PHP-Datei zusätzlicher Code entsteht, der beim Ausführen entweder einen Fehler erzeugt oder unabsichtliche oder böswillige Befehle ausführt. Das macht das ganze schon mal komplizierter.

Außerdem könnte der User ja auch einen Benutzernamen '../index' wählen, was bei fehlenden zusätzlichen Abfragen dazu führen würde, dass die Datei index.php im Mutterverzeichnis überschrieben wird.

Desweiteren würde es Probleme geben, wenn der Username ein für das Dateisystem des jeweiligen OS ungültiges Zeichen enthält. Also nochmal eine Sicherheitsabfrage.

Eine weitere Unannehmlichkeit würde beim Auflisten bzw. Zählen aller User auftreten. Man müsste zuerst das gesamte Verzeichnis einlesen.

Was mich persönlich daran stört, ist außerdem, dass nicht sauber zwischen Programmcode und Daten unterschieden wird. Eine solche Abstahierung gehört meiner Meinung nach zu einem sauberen Programmierstil.


Just my two cents...


reima
 
Zurück