Может кто-нибудь скажет мне, как я могу проверить хешированный пароль, когда кто-то входит в систему?Как проверить пароль хеширования при входе пользователя в систему
вот мой регистрационный код:
$db_password = password_hash($password, PASSWORD_DEFAULT);
// Enter info into the Database.
$info2 = htmlspecialchars($info);
$sql = mysql_query("INSERT INTO users
(first_name, last_name, email_address, username, password, signup_date)
VALUES('$first_name', '$last_name',
'$email_address', '$username',
'$db_password', now())")
or die (mysql_error());
это мой код проверки пользователя запустить при входе в систему. ,
$hash = password_hash($password, PASSWORD_DEFAULT);
// check if the user info validates the db
$sql = mysql_query("SELECT *
FROM users
WHERE username='$username'
AND password='$hash'
AND activated='1'");
$login_check = mysql_num_rows($sql);
Я не могу понять это.
забыл добавить при входе в системе я встретился с недействительным мандатным сообщением – user3205214
При проверке пароля, вы читаете существующий хэш от базы данных и использовать [password_verify()] (http://www.php.net/manual/en/function.password-verify.php), чтобы проверить, что против введенного пользователем пароля –
Пожалуйста, [прекратите использование 'mysql_ * 'functions] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). Они больше не поддерживаются и [официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). Узнайте о [подготовленных заявлениях] (http://en.wikipedia.org/wiki/Prepared_statement) и используйте [PDO] (http://jayblanchard.net/demystifying_php_pdo.html). Кроме того, способ использования переменных в ваших запросах приводит меня к мысли, что вы можете стать жертвой [SQL Injection.] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection -in-php) –