Benutzername und/oder Passwort falsch, warum?

Guten Abend!

Ich habe mir folgendes Formular (login.php) erstellt:

<?php session_start();<br />?\><?php $verbindung = mysql_connect("rdbms.strato.de", "U555799" , "meinpasswort") <br />or die("Die Verbindung zur Datenbank konnte nicht hergestellt werden!"); 
mysql\_select\_db("DB555799") or die ("Die Tabelle in der Datenbank konnte nicht geoeffnet werden!"); 

$username = $\_POST["username"]; 
$passwort = md5($\_POST["password"]); 

$abfrage = "SELECT username, passwort FROM kundenlogin WHERE username LIKE '$username' LIMIT 1"; 
$ergebnis = mysql\_query($abfrage); 
$row = mysql\_fetch\_object($ergebnis); 

if($row-\>passwort == $passwort) 
 { 
 $\_SESSION["username"] = $username; 
 echo "Login erfolgreich. 
[Geschützer Bereich](%255C%2522kunde_x.php%255C%2522)"; 
 } 
else 
 { 
 echo "Benutzername und/oder Passwort waren falsch. [Login](%255C%2522kundenlogin.php%255C%2522)"; 
 } 
?\>

Als Benutzername habe ich in der SQL-DB „test“ und als Passwort ebenfalls „test“ (als Hash5-Wert) eingetragen. Trotzdem sind der Benutzername und/oder das Passwort falsch.

Kann mir einer sagen warum?

Gruß WinniPuh

Habe momentan das gleiche Problem, mit der md5 Umwandlung. Verstehe auch nicht, was das Problem ist, da der Code korrekt sein müsste.

Moin,

bei mir war das Problem, wenn ich das pwd reingepastet habe wars falsch…wenn ichs reingeschrieben habe, ist es gegangen.

Eventl hilft euch das n Stück weiter…

Gruß Rolf

Hallo WinnPuh,

auch dir rate ich Fehlerausgaben einzubauen. Wie ich sehe arbeitest du auch mit LIKE , steht das in irgend einem Tutorial?

Hast du dir beide MD5 hashes schon einmal untereinander ausgeben lassen?

Sowie in
/t/probleme-beim-auslesen-vergleichen-eines-md5-hash…

gebe ich den hinweis auf die mögliche Fehlerquelle der Codierung / Charsets.

Da MD5 binär arbeit und UTF8 mehr Bytes für umlaute reserviert entstehen unterschiedliche hashes wenn verschiedene Charsets verglichen werden.

(Falls es jemand besser weiss lasse ich mich gerne belehren.)

mir nicht, gebe es ganz normal ein