Я создал password_hash во время процесса регистрации, и когда я возвращаюсь, чтобы войти в систему и вводить электронную почту и пароль с помощью password_verify, он выводит, что пароль не совпадает. Чтобы проверить, что мой запрос работает, я сгенерировал хэш пароля с помощью онлайн-инструмента по этой ссылке http://www.passwordtool.hu/php5-password-hash-generator
Это успешно позволяет пользователю войти в систему, но автоматически генерируемый хэш с помощью password_hash всегда терпит неудачу, что означает, что мой запросХорошо. Есть ли решение для правильной работы password_hash?
Любая помощь будет полезна. Заранее спасибо,
Я пытался использовать статический password_hash, который выглядел как $ 2y $ 10 $ 3xrOcCz5fewSd90zS7dgseINs1WpD132MtrWjFmG3qSQcNDXpcgbe, который представляет собой пароль @ 123
1019 * 1011 1012 Зарегистрировать для регистрации в AjaxПроцесс
require_once('dbconn.php');
if($_POST)
{
$email = $_POST['email'];
$cpassword = $_POST['confirm_password'];
$hashed = password_hash($cpassword, PASSWORD_DEFAULT);
$sql = "INSERT INTO user_login (user_email, user_password) VALUES (?,?)";
$stmt = mysqli_prepare($conn, $sql);
mysqli_stmt_bind_param($stmt, "ss", $email, $hashed);
$result = mysqli_stmt_execute($stmt);
if ($result) {
echo "Successfully Inserted !";
//echo '<script type="text/javascript">';
//echo 'setTimeout(function () { swal("Thanks!","Your account is created !","success");';
//echo '}, 1000);</script>';
}
else{
echo "Error occurred! ".mysqli_stmt_errno($stmt)." ".mysqli_stmt_error($stmt)." ";
$error = mysqli_stmt_error($stmt);
}
}
mysqli_close($conn);
?>
Вход в систему
if(isset($_POST['btn_lg'])) {
$email = $_POST['email'];
$password = $_POST['password'];
$sql = "SELECT `user_email`, `user_password` FROM `user_login` WHERE `user_email` = ?";
$stmt = mysqli_prepare($conn, $sql);
mysqli_stmt_bind_param($stmt,"s", $email);
$result = mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
mysqli_stmt_bind_result($stmt, $email, $pass);
mysqli_stmt_fetch($stmt);
if(mysqli_stmt_num_rows($stmt) === 1)
{
//$row = mysqli_stmt_fetch($stmt);
$hash = $pass;
//echo $hash;
if(password_verify($password, $hash))
{
$_SESSION['Logged'] = true;
$_SESSION['email'] = $email;
?>
<script type="text/javascript">
window.location.href="test.php";
</script>
<?php
}
else
{
echo "The username or password do not match" ;
}
}
else
{
echo "Login Failed ! " .mysqli_stmt_errno($stmt)." ".mysqli_stmt_error($stmt)." ";
}
}
?>
Я ожидал, что результат входа в систему будет истинным, но вывод будет ложным