Ошибка проверки MD5 по неизвестной причине в PHP - PullRequest
0 голосов
/ 21 февраля 2011

Я пишу форму входа, и она преобразует данный пароль в хеш MD5 с md5($password), а затем сопоставляет его с уже хешированной записью в моей базе данных.Я точно знаю, что запись базы данных в этом случае верна.Тем не менее, он не входит в систему и утверждает, что пароль неверный.

Вот мой код:

$password = mysql_real_escape_string($_POST["password"]);
...more code...
$passwordQuery = mysql_fetch_row(mysql_query(("SELECT password FROM users WHERE email = '$userEmail'")));
...some code...
elseif(md5($password) != $passwordQuery)
{
    $_SESSION["noPass"] = "That password is incorrect.";
}
...more code after...

Я попытался получить только значение md5 ($ password), и это соответствуеткогда я визуально сравнил это.Тем не менее, я не могу заставить сравнение работать в PHP.Возможно, это потому, что запись MySQL хранится в виде текста, а MD5 - это что-то еще?

Ответы [ 2 ]

4 голосов
/ 21 февраля 2011

$ passwordQuery содержит и массив с хешем, а не только с хешем.

Вместо

elseif(md5($password) != $passwordQuery)

try

elseif(md5($password) != $passwordQuery[0])
2 голосов
/ 21 февраля 2011

Мне кажется, что вы сравниваете строку (результат из $ _POST) с массивом (результат mysql_fetch_row). Вы, вероятно, захотите что-то вроде:

if (md5($password) != $passwordQuery['password') {
   ....
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...