Аутентификация входа в систему с использованием хешированного пароля, хранящегося в Mysql, с помощью password_verify () в Stack Overflow

У меня есть сайт, на котором я программирую систему регистрации / входа password_hash() а также password_verify() , Я успешно вставил регистрационные данные с хешированным паролем в базу данных. Моя проблема заключается в том, как аутентифицировать пользователя, используя этот хешированный пароль.

Ниже приведен код аутентификации:

<?php
session_start();
$host="localhost";
$username="yyy";
$password="yyyy";
$db_name="yyyy";
$tbl_name="users";
$link = new mysqli("$host", "$username", "$password", "$db_name");
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
$username = mysqli_real_escape_string($link, $_POST['username']);
$pwd = mysqli_real_escape_string($link, ($_POST['password']));
$query = mysqli_query($link, "SELECT * from $tbl_name WHERE username='$username'"); //Query the     users table if there are matching rows equal to $username
$exists = mysqli_num_rows($query); //Checks if username exists
$table_users = "";
$table_password = "";
$password = 0 ;
if($exists > 0) //IF there are no returning rows or no existing username
{
while($row = mysqli_fetch_assoc($query)) //display all rows from query
{
$table_users = $row['username']; // the first username row is passed on to $table_users, and so on until the query is finished
$table_password = $row['password']; // the first password row is passed on to $table_users, and so on until the query is finished
$password = (password_verify($pwd, $table_password));

}

if(($username == $table_users) && ($password))
{
if($password) {

$_SESSION['user'] = $username; //set the username in a session. This serves as a global variable
header("location: session.php"); // redirects the user to the authenticated home page
}

}
else
{
Print '<script>alert("Incorrect Password!");</script>';
Print '<script>window.location.assign("login.php");</script>';
}

}
else
{
Print '<script>alert("Incorrect Username!");</script>';
Print '<script>window.location.assign("login.php");</script>';
}
?>

password_verify() кажется, всегда возвращать false или 0 «к $password переменная.
Спасибо за любую помощь, спасибо.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]