ログインしているユーザーがmd5ハッシュとして保存されている正しいパスワードを入力したかどうかを確認しようとしています。入力したパスワードのハッシュをエコーすると、データベースのハッシュと正確に一致しますが、それでもその偽と考えられます。 HERESにコード:PHPはなぜ2つの等しいものが不等であると言うでしょうか?
echo md5($_POST['pass']);
if ($user->match_password($_POST['pass']) == true) {
...
} else {
...
}
それはDBにパスワードフィールドをチェックし
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));
}
}
私は '$ u_reuslt'変数がちょうどタイプミスであると推測しています...? – deceze
@deceze:あなたはバグを見つけたと思う。私はポスターがコピー/ペーストを知っていることを願っています! – derobert
はい私は彼らがそう信じました。あなたが答えとしてそれを投稿できるなら、私はそれを受け入れるでしょう。 –