因此,我有一个存储ID,用户名和密码的数据库。密码是使用php的password_hash()功能存储的。该部分工作正常,并且已成功将其与哈希一起存储在数据库中。现在我要使用该password_verify()功能。我似乎无法正确地从数据库中获取字符串值,以将其与该函数一起使用。$db由于我已经在其中存储了一些东西,因此数据库()的设置正确。数据库中的列仅是ID,用户名和密码。$ username和$ password是用户登录时填写的内容。<?php if (count($errors) == 0) { // Everything correct, so verify pw $sql = $db->query("SELECT password FROM users WHERE username='$username'"); if ($sql->num_rows > 0 ){ $hashedpass = $sql->fetch_array(); if (password_verify($password, $hashedpass['password'])); { $msg = "Username and password are correct"; } else { $msg = "Incorrect"; } else { $msg = "Incorrect"; }?>
2 回答

炎炎设计
TA贡献1808条经验 获得超4个赞
在这里获取数据后,创建$hashedpass
一个数组:
$hashedpass = $sql->fetch_array();
然后,您将$hashedpass['password']
使用表中的列名与之进行比较:
password_verify($password, $hashedpass['password'])
此外
小鲍比(Little Bobby)说,您的脚本有遭受SQL注入攻击的危险。。即使转义字符串也不安全

白板的微信
TA贡献1883条经验 获得超3个赞
$hashedpass = $sql->fetch_array();
为您提供一个具有所选列名的关联数组。
您应该通过选择正确的元素来获取值-
$hashedpass['password']
- 2 回答
- 0 关注
- 199 浏览
添加回答
举报
0/150
提交
取消