Ich versuche zu sehen, ob ein Benutzer, der sich anmeldet, das richtige Passwort eingegeben hat, das als md5-Hash gespeichert wird. Wenn ich den Hash des eingegebenen Passworts ausspreche, stimmt es genau mit dem Hash des in der Datenbank eingegebenen Passworts überein, aber es ist immer noch falsch. Heres der Code:Warum würde PHP sagen, dass zwei gleiche Dinge ungleich sind?
echo md5($_POST['pass']);
if ($user->match_password($_POST['pass']) == true) {
...
} else {
...
}
es versucht, den anderen Code auszuführen oben^
class user {
...
var $password;
...
function user($id) {
global $DB;
$this->db = new db($DB['host'], $DB['user'], $DB['pass'], $DB['database']);
$this->user_id = $id;
$u_result = $this->db->run("select * from users where use_id = " . $this->db->escape($this->user_id));
...
$this->password = $u_reuslt[0]['password'];
...
}
...
function match_password($password) {
return ($this->password == md5($password));
}
}
Ich nehme an, die '$ u_reuslt' Variable ist nur ein Tippfehler ...? – deceze
@deceze: Ich vermute, Sie haben den Fehler gefunden. Ich hoffe, das Poster kennt Copy/Paste! – derobert
Ja, ich glaube, sie haben es getan. Wenn du das als Antwort posten könntest, akzeptiere ich es. –