Hallo allerseits,
ich habe im Web ein Loginscript aufgestöbert
und dies ein wenig meinen Ansprüchen angepasst.
Nun passiert folgendes:
Der User registriert sich, wird vom Admin freigeschaltet,
steht in der db auch richtig drin (soweit ich das sagen kann),
loggt sich dann mit seinem Usernamen und
Userpasswort (Testuser / 1234567) ein und
bekommt nur die Nachricht, dass Username
oder Passwort falsch ist.
Ich habe mir den Code mehrfach angesehen und
überlegt woran es liegen könnte, doch ich kann
keinen Fehler sehen.
Die Daten die in der db stehen:
id | username | passwort | aktiv
25 | Testuser | fcea920f7412b5da7be0cf42b8c93759 | 1
Vielleicht sieht einer von Euch, wo der Fehler sich versteckt. Vielleicht ist der Fehler ja schon drin gewesen,
bevor ich an dem Script etwas verändert habe.
Daten und Fakten vom Server (phpinfo)
ich habe im Web ein Loginscript aufgestöbert
und dies ein wenig meinen Ansprüchen angepasst.
Nun passiert folgendes:
Der User registriert sich, wird vom Admin freigeschaltet,
steht in der db auch richtig drin (soweit ich das sagen kann),
loggt sich dann mit seinem Usernamen und
Userpasswort (Testuser / 1234567) ein und
bekommt nur die Nachricht, dass Username
oder Passwort falsch ist.
Ich habe mir den Code mehrfach angesehen und
überlegt woran es liegen könnte, doch ich kann
keinen Fehler sehen.
PHP-Code:
<?
echo "<center>";
if (isset($_POST["submit"])) {
//wenn submit button betätigt...
$username = $_POST["username"];
//speichere eingegebenen Usernamen in Variable
$passwort = md5($_POST["passwort"]);
//speichere eingegebenes Passwort in
//Varaible und verschlüssele es mit md5()
$user = mysql_fetch_object(mysql_query("SELECT id, username, passwort,
aktiv FROM benutzerdaten WHERE username='" . $username . "'"));
//userdaten aus datenbank holen
if ($username == "" or $passwort == "d41d8cd98f00b204e9800998ecf8427e") {
echo "<b>Du hast nicht alle Felder ausgefüllt!</b>";
//felder aus inhalt überprüfen, wenn leer error ausgeben (Hinweis:
//bei passwort steht so eine zeichenfolge, weil mit md5 auch leerer
//inhalt verschlüsselt wird
} elseif ($user->aktiv == "0") {
echo "<b>Dein Account muß erst noch freischaltet werden, bevor
du dich einloggen kannst!<br>Benachrichtige bitte den Vorstand.</b>";
//überprüfen ob account mit bestätigungslink freigeschaltet wurde,
//wenn nicht error ausgeben
} elseif ($username == $user->username && $passwort == $user->passwort) {
//daten überprüfen, wenn richtig...
$_SESSION["id"] = $user->id;
//registriere die sesson id, mit der ID des users
header("Location: main.php");
//leite zu main.php weiter
exit;
//ab hier tu nix mehr ^^
} else {
//wenn nicht richtig...
echo "<b>Du hast einen falschen Nutzernamen oder ein falsches
Kennwort eingegeben!</b>";
//gib einen error aus
}
}
echo "</center>";
?>
id | username | passwort | aktiv
25 | Testuser | fcea920f7412b5da7be0cf42b8c93759 | 1
Vielleicht sieht einer von Euch, wo der Fehler sich versteckt. Vielleicht ist der Fehler ja schon drin gewesen,
bevor ich an dem Script etwas verändert habe.
Daten und Fakten vom Server (phpinfo)
Kommentar