gpt4 book ai didi

php - 如何验证用户输入的密码是否与 MySQL 数据库中存储的哈希密码相匹配

转载 作者:行者123 更新时间:2023-11-29 22:01:30 25 4
gpt4 key购买 nike

获取用户输入的密码并检查其是否与存储在 MySQL 数据库表中的散列密码匹配的基本代码是什么?

最佳答案

这是一个基本的非安全示例,说明如何验证用户输入的密码是否与数据库中存储的password_hash 版本匹配。我贡献这个问答是因为我无法在网上找到基本的可理解的答案。

要测试这一点,您需要一个数据库连接、一个名为 user 且包含数据(当然)的数据库表,以及一个错误页面(此处为 error.html.php)。

希望对您有所帮助。

<?php
if(isset($_POST['action']) && $_POST['action'] === 'submit')
{
include 'your database connection file';

try
{
$sql = 'SELECT password FROM user
WHERE email = :email';
$s = $pdo->prepare($sql);
$s->bindValue(':email', $_POST['email']);
$s->execute();
}
catch(PDOException $e)
{
$error = 'Error fetching password.' . $e->getMessage();
include 'error.html.php';
exit();
}

// Assign single row result to $result as associative array
$result = $s->fetch(PDO::FETCH_ASSOC);

// Check for match using boolean password_verify()
if(password_verify($_POST['password'], $result['password']))
{
echo '<p style="color:#0000ff">Match!</p>';
}
else
{
echo '<p style="color:#ff0000">Sorry, wrong password.</p>';
}
}

?><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Password Verify</title>
</head>
<body>
<form action="" method="post">
<input type="text" name="email" placeholder=" Email">
<input type="text" name="password" placeholder=" Password">
<button type="submit" name="action" value="submit">Submit</button>
</form>
</body>
</html>

关于php - 如何验证用户输入的密码是否与 MySQL 数据库中存储的哈希密码相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32609955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com