авторизация с hash [дубликат]

126
06 ноября 2019, 02:20

На данный вопрос уже ответили:

  • Вопрос по $_SESSION
  • password_verify не правильно работает 2 ответа

Я понимаю, что про это много написано, но я не могу найти ошибку в своем коде.

<?php
    session_start();
    include '../db.php';
    $login = strip_tags($_POST['login']);
    $password = strip_tags($_POST['password']);
try {
    $stmt = $dbh->prepare("SELECT * FROM users");
    $stmt->execute();
    while ( $row1 = $stmt->fetch() ) {
        $login_in_data = $row1['login'];
        $name_in_data = $row1['name'];
    }
} catch (exeption $e) { echo $e->getMessage(); } 

if ( $login == $login_in_data ) {
    $stmt = $dbh->prepare("SELECT password FROM users WHERE login = (:login) ");
    $stmt->bindParam(':login', $login);
    $stmt->execute();
    while ( $row2 = $stmt->fetch() ) {
        $password_in_data = $row2['password'];
    }
    if ( password_verify($password,$password_in_data) ) { // Не работает
        // Если пользователь зашел (тк логин и пароль правильные)
        echo "Вы вошли, как " . $login;
    } else {
        // Если пользователь не зашел (тк логин и пароль правильные)
        echo "Пароль не правильный! ";
        echo "Ваш пароль: " . $password;
        echo " Пароль с базы данных: " . $password_in_data;
    }
} else {
    echo "Логин не правильный!";
}
?>

Строка, которая не хочет работать помечена комментарием.

$password - пароль, который ввёл пользователь $password_in_data - пароль, хранящийся в базе данных

По структуре так и нужно, чтобы в 1 части был пароль, введённый пользователем, а после запятой - пароль, который хранится в БД. Но он пишет false, хотя пароль верен.. Прошу помочь

READ ALSO
Как вывести на странице все исполняемые запросы к БД?

Как вывести на странице все исполняемые запросы к БД?

Во фреймворке есть debug panel, которая показывает огроомнейшее количество всех запросов, среди которых много служебных, для отладки, на сколько...

126
Ajax загрузка из бд

Ajax загрузка из бд

Пытаюсь сделать загрузку с помощю ajax из бд , но в ответ ничего не приходит , ошибок нету!

144
Использование std::thread и std::mutex. Поделитесь опытом

Использование std::thread и std::mutex. Поделитесь опытом

Решил разобраться в вопросе "Как писать эффективные многопоточные приложения/алгоритмы?"

145
Не отображается закрытый член класса в описании дружественной функции

Не отображается закрытый член класса в описании дружественной функции

Столкнулся с проблемой: есть класс Вектор в нем содержится перегруженный оператор << для сцепленного вывода Вектора в программеВ описании...

126