У меня есть сценарий входа, который я только начинаю.Когда вводится новый пароль, он сначала шифруется с использованием MD5, а затем сохраняется в базе данных.
Когда я ввожу имя пользователя и пароль в форму входа и отправляю их, я пытаюсь проверить сохраненный пароль попеременная $ _POST, подобная этой:
$username = $_POST['username'];
$password = md5($_POST['password']);
//database stuff here
$q = mysql_query("SELECT * FROM Users WHERE username='$username'");
while ($row = mysql_fetch_array($q))
{
if ($row['password'] == $password)
{
echo "Passwords match.";
}
else
{
echo "Password is incorrect.";
echo "<br />Entered password: " . $password;
echo "<br />Stored password: " . $row['password'];
}
}
Это только на стадии тестирования, поэтому пароль, который я пытаюсь проверить, это «пароль», для простоты.Если я выведу $ _POST ['password'], я получу пароль - однако, если я выведу хеш MD5, сохраненный в базе данных, и md5 ($ _ POST ['password']), они не совпадут.Последний имеет дополнительные символы.Кто-нибудь знает, почему это происходит?