Общата практика е следната:
- Извличане на
парола
хеш от базата данни, къдетопотребителското име
=въведеното потребителско име. - Ако се намерят редове, значи има потребител
- Сега сравнявате въведената парола с хеша, съхранен в базата данни.
Ще очертая горния поток в някакъв псевдокод за вас тук:
$query = SELECT password FROM users WHERE username = '$username'
$data = FETCH_THE_DATA($query);
if(password_verify($USER_INPUTTED_PASSWORD, $data['password'])) {
// password is correct
} else {
// password is in-correct
}
Бележки
- Спрете да използвате
mysql_*
функции. Библиотеката е отхвърлена, тъй като е ненадеждна и ще бъде премахната в бъдещи версии на PHP.- По-добре е да използвате PDO или Подготвени изявления за MySQLi
- Винаги трябва да четете ръководството -
password_verify()код>
, то ясно посочва, че сравнявате „въведената от потребителя парола“ с хешираната версия, която се съхранява във вашата база данни.