почему функция password_verify () не работает? - PullRequest
0 голосов
/ 27 января 2019

!password_verify() не возвращает правильное логическое значение. На моей странице входа в систему, даже если я ввожу правильный пароль пользователя, он все равно попадает в оператор if и отображает сообщение об ошибке. Я сохранил хешированный и нехэшированный пароль в МОЕЙ таблице SQL для проверки, но ни в одном из случаев он не работает правильно.

 <?php
 include('database_connection.php');
 include('helper.php');


session_start();


$errors = array();
$username = ((isset($_POST['username']))? 
sanitize($_POST['username']):'');
$username = trim($username);
$password = ((isset($_POST['password']))? 
sanitize($_POST['password']):'');
$password = trim($password);

if(isset($_SESSION['user_id'])){
header('Location: index.php');
}

if(isset($_POST['login'])){
 if(empty($_POST['username']) || empty($_POST['password'])){
            $errors[] = "You must provide email and password.";
        }
     $query_execute = $db->query("SELECT * FROM login WHERE username = '$username'");
$result = mysqli_fetch_assoc($query_execute);
$pass = $result['password'];

$count = mysqli_num_rows($query_execute);
 if($count<1)
        {
            $errors[] = "The email does'nt exist in our database.";
        }
        if(!password_verify($password,$result['password'])){
            $errors[] = "The Password Does Not Match Our Records. Please 
  Try Again.";
        }
        if(strlen($password) < 6){
            $errors[] = "Password must be atleast of 6 characters.";
        }




        if(!empty($errors)){
            echo display_errors($errors);
        }
        else{

            $_SESSION['user_id'] = $result['user_id'];
            $_SESSION['username'] = $result['username'];
            $sub_query = "INSERT INTO login_details (user_id) VALUES 
    ('".$result['user_id']."')";
            $db->query($sub_query);
            $_SESSION['login_details_id'] = mysqli_insert_id($db);
            header('Location: index.php');

           }

     }

     ?>

Ожидаемое сообщение об ошибке не будет отображаться, если пользователь введет правильный пароль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...