我在获取password_verify
来验证密码时遇到问题。
我使用
将密码存储在数据库中password_hash($password, PASSWORD_DEFAULT)
在登录页面上,我让用户输入用户名和密码,并通过发布方法$_POST['pwd']
检索输入(这是用户输入的密码)。
然后我从数据库中检索哈希密码,并与登录名中的密码进行对照
if(password_verify($password, $results['password']))
我似乎无法弄清楚为什么密码似乎从未匹配。我已经阅读了filter / escape可能会影响password_verify()
并将其更改为同样的结果。任何帮助将不胜感激。
<?PHP
include('connection.php');
if(isset($_POST['submit'])){
$username = trim(filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING));
$password = trim(filter_input(INPUT_POST, 'pwd', FILTER_SANITIZE_STRING));
$sql = $db->query("SELECT password FROM users WHERE username = '$username'");
$results = $sql->fetch(PDO::FETCH_ASSOC);
$savedHash = $results['password'];
//echo $savedHash;
if(password_verify($password, $savedhash)){
echo "yes " . $password;
}else{
echo "no";
}
?>