password_verify php

98
10 июня 2021, 20:30

Захешировал пароль, записал в БД

$hpassword = password_hash($_POST['regpassword'], PASSWORD_BCRYPT);    
$insert = mysqli_query($link,"INSERT INTO users (login,password,admin) VALUES ('$_POST[reglogin]','$hpassword','$_POST[regadmin]')");

Ввел пароль 1234, после хеширования получилось: $2y$10$Vq1B7/IWiiQQtZYOzbGaBOERJs7BsItru4oSApOtmeqP6ytgsQH7m

Делаю проверку:

function login($link,$login,$password) {
$loginResult = mysqli_query($link,"SELECT * FROM users WHERE login='$login' AND admin='1'");
                while ($row = mysqli_fetch_array($loginResult)) {
                    $bpass = $row['password'];  
                }
                if (password_verify($password, $bpass)) {
                    $checking = true;
                    echo 'true';
                } else {
                    echo 'false';
                }
}

Ввожу пароль 1234,но выбивает результат проверки false

В БД у колонки с паролем тип данных стоит VARCHAR(255)

Answer 1

В отличие от синтаксиса двойных кавычек и heredoc, переменные и управляющие последовательности для специальных символов, заключенных в одинарные кавычки, не обрабатываются.

Answer 2

Скорее всего ошибка в этой строчке кода, а именно в том , что ты не проверяешь пароль в запросе после WHERE , как у тебя называется поле с паролем в бд если password, то пробуй так:

$loginResult = mysqli_query($link,"SELECT * FROM users WHERE login='$login' AND password ='$hpassword'");
READ ALSO
редактирование config.php

редактирование config.php

Я учусь делать сайтыЕсть вопрос - как сделать, чтобы можно было в админ-панели редактировать строки из config

117
Возврат массива из функции

Возврат массива из функции

Подскажите, как возвратить список удалённых файлов в виде массива без использования глобальной переменной?

95
Конкатенация в условии

Конкатенация в условии

Как сделать так, чтобы выводилась строка 'Перед условие 1 после' ?

118
Отсортировать ассоциативный массив

Отсортировать ассоциативный массив

Есть следующий ассоциативный массив, который содержит список всех координат:

136