J'essaye de voir si un utilisateur se connectant a entré le bon mot de passe, qui est stocké comme un hachage md5. quand je fais écho au hash du mot de passe saisi, il correspond exactement au hash de celui de la base de données, mais il pense toujours qu'il est faux. Heres le code:Pourquoi php dirait que deux choses égales sont inégales?
echo md5($_POST['pass']);
if ($user->match_password($_POST['pass']) == true) {
...
} else {
...
}
il tente d'exécuter le code else ci-dessus^
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));
}
}
Je suppose que la variable '$ u_reuslt' est juste une faute de frappe ...? – deceze
@deceze: Je suppose que vous avez trouvé le bug. J'espère que l'affiche sait de copier/coller! – derobert
oui je crois qu'ils l'ont fait. Si vous pouviez publier cette réponse, je l'accepterais. –