Loading...
Всем привет, изучаю PDO
есть регистрация, пароль хешируется через password_hash
Как правильно теперь расшифровать его через password_veryfi, точнее как вставить 2ым параметром зашифрованный пароль из бд

php
    $stat = $dbconn->prepare('SELECT id FROM users WHERE (user_name = :user_name OR email = :user_name) AND password = :password');  
$stat->execute([
'user_name' => $_POST['user_name'],
'password' => password_verify($_POST['password'], ???????)
]);
$id = $stat -> fetchColumn();
if(!empty($id)){
$_SESSION['user_id'] = $id;
die("Вы успешно авторизировались");
} else {
$errors[] = 'Вы не правильно ввели логин или пароль';
}
Делаешь выборку по юзер нейм и в иф сравниваешь пароль и вопрос, а причём здесь pdo? Это же просто драйвер Гг
Либо передашь готовый хеш в базу и ищеш Гг
php
   public function hashing($var, $hash = false) { 
if (!$hash) return password_hash($var, PASSWORD_BCRYPT);
else return (password_verify($var, $hash)) ? true : false; }


Вот тебе простая функция. Загоняешь один параметр - получаешь хеш, в случае с crypt() длина хеша будет 60. Если передаешь два параметра: первый это указанный пароль, второй - хеш. Его вытаскиваешь из базы, выборка по мыло или логину, как там у тебя сделано, и тупо сравниваешь.
SerjTankian , спасибо
Онлайн: 4
Время:
Gen. 0.087
(c) Bym.Guru 2010-2026