Проблема с password_verify постоянно выводит false при вводе пароля
Прошу помощи не работает password_verify постоянно выдаёт echo "Пароль не совпадает";
<?php
require_once 'lib/db_connect.php';
if (isset($_REQUEST['doGo'])) {
if (!$_REQUEST['login']) {
$error = 'Введите логин';
}
// Проверяет пароль
if (!$_REQUEST['pass']) {
$error = 'Введите пароль';
}
if (!$error) {
$login = $_REQUEST['login'];
$pass = $_REQUEST['pass'];
if ($result = mysqli_query($link, "SELECT `passwd`, `id сотрудника` FROM `сотрудники` WHERE `login`='" . $login . "'")) {
while( $row = mysqli_fetch_assoc($result) ){
if ($row['id сотрудника']) {
if (password_verify($pass, $result['passwd'])) {
echo "Вы вошли";
exit;
} else {
echo "Пароль не совпадает";
}
} else {
echo "Введён неверный логин";
}
}
}
} else {
echo $error;
}
}
?>
Ответы (1 шт):
Автор решения: Crasher
→ Ссылка
Потому что почитайте внимательно описание функции password_verify. В мануале написано, что она проверяет, соответствует ли пароль хешу. А вы в качестве параметров подсовываете сырые пароли, естественно она возвращает false. В вашем случае будет просто if ($pass == result['passwd'])
Но хранить пароли в открытом виде - очень плохая практика. Как минимум можно хранить md5 хэши паролей

