prrrrrrr
@prrrrrrr
Верстаю сразу на PHP.

Как сверить захешированый пароль из БД с введённым из input?

Как сверить захешированый пароль из БД с введённым из input?

Проверку делаю таким образом:
$_SESSION['logged_user']->password != $data['password']

Сверка не получается я так понимаю из за хеша, потому что если сделать таким же образом сверку с id ($_SESSION['logged_user']->id), и в инпуте ввести верный id, то действие проходит успешно.

Хеш при регистрации:
$user->password = password_hash($data['password'], PASSWORD_DEFAULT);
  • Вопрос задан
  • 363 просмотра
Решения вопроса 2
leni_m
@leni_m
ЧупаКобрус
хешируйте введённый пароль и сравнивайте
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Парная к password_hash - password_verify
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
flapflapjack
@flapflapjack
на треть я прав
$_SESSION['logged_user']->password;

Ого, а я и не знал, что в сессии объекты могут храниться О_о.

Если вы сравниваете нехешированный пароль из input с хешированным паролем из БД, то логично что проверка не пройдёт. Захешируйте пароль из input тем же алгоритмом, что и хеширует пароль перед занесением в БД, а после уже и сравнивайте.

Если честно из вашего кода я вообще не вижу ни переданных данных $_GET/$_POST из input'a, ни работы с БД. Я вижу как вы сравниваете данные из сессии с массивом $data. Какой-то очень интересный у вас механизм.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы