Ich arbeite grad an einem Loginscript und wundere mich warum ich mich nicht einloggen kann wenn ich das richtige Passwort eingebe. Es kommt immer der Fehler die Benutzerdaten wären falsch.
daraufhin habe ich mir die Kennwörter einmal aus der Datenbank und das eingegebene ausgeben lassen. Beide Md5 verschlüsselt.
Dabei entdeckte ich das der MD5 string des eingegebenen Kennworts länger ist als der des Kennwortes in der Datenbank.
Ich liess mir also das eigegebene Kennwort normal ausgeben und stellte fest das am Kennwort noch eine 0 hintendranhing,
Ich habe daraufhin andere Wörter als Kennwort eingegeben und mir normal ausgeben lassen und überall hing die 0 am ende an.
Warum.
Hier der Code:
index.php Auszug:
hier nun die ausgabe auf der Login.php:
daraufhin habe ich mir die Kennwörter einmal aus der Datenbank und das eingegebene ausgeben lassen. Beide Md5 verschlüsselt.
Dabei entdeckte ich das der MD5 string des eingegebenen Kennworts länger ist als der des Kennwortes in der Datenbank.
Ich liess mir also das eigegebene Kennwort normal ausgeben und stellte fest das am Kennwort noch eine 0 hintendranhing,
Ich habe daraufhin andere Wörter als Kennwort eingegeben und mir normal ausgeben lassen und überall hing die 0 am ende an.
Warum.
Hier der Code:
index.php Auszug:
Code:
<?php if (isset ($_REQUEST["fehler"])) { echo "Die Zugangsdaten waren ungültig."; } ?> <form action="login.php" method="post"> <table border="0"> <tr> <th>Name:</th> <td><input type="text" name="name" size="20"></td> </tr> <tr> <th>Kennwort:</th> <td> <input type="password" name="pwd" size="20"><td> <td><input type="submit" value=" Login "></td> </tr> </table ></form>
Code:
<?php // Session starten session_start (); // Datenbankverbindung aufbauen $connectionid = mysql_connect ("localhost", "user", "passwort"); if (!mysql_select_db ("datenbank", $connectionid)) { die ("Keine Verbindung zur Datenbank"); } $sql = "SELECT ". "Id, Nickname, Email, Kennwort ". "FROM ". "benutzerdaten ". "WHERE ". "(Nickname like '".$_REQUEST["name"]."')"; $result = mysql_query ($sql) or die(mysql_error()); if (mysql_num_rows ($result) > 0) { // Benutzerdaten in ein Array auslesen. $data = mysql_fetch_array ($result); $data1= md5 ($_REQUEST["pwd"]); echo $data1 . "\n\n"; echo $_REQUEST["pwd"]; echo mysql_errno() . ": " . mysql_error() . "\n"; // Sessionvariablen erstellen und registrieren $_SESSION["user_id"] = $data["Id"]; $_SESSION["user_nickname"] = $data["Nickname"]; header ("Location: index2.php"); } else { header ("Location: index.php?fehler=1"); } ?>
Kommentar