好的,我希望它不重复,但其他帖子对我没有帮助。
我在将密码存储到DB之前对其进行哈希处理。当我想要将其取回并与用户输入进行比较时,我总是得到"密码与#34;不匹配。我尝试了很多修复,但似乎没有任何工作。可能问题在于我的语法,我对php不好。
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
if (password_verify($RegisteredPass, $row['pass']))
{
echo "tchd";
echo "ID:".$row['id'] ."|Name:".$row['name']. "|User:".$row['user'];
}
else{
echo "pass doesn`t match";
}
}
} else {
echo "user not found";
}
哈希密码
$hassedPassword = password_hash($password, PASSWORD_DEFAULT, ['cost' => 12]);
我不太关心安全性,因为它只适用于项目。我只需要让它发挥作用。
编辑:
我按照"重复"更改了while循环。仍然无法正常工作。任何想法为什么。
$sql = "SELECT pass, id, name, user FROM unityTut WHERE user='".$RegisterUser."'";
$result = $conn->query($sql);
if ($result->num_rows === 1) {
$row = $result->fetch_array(MYSQLI_ASSOC);
if (password_verify($RegisteredPass, $row['pass'])) {
//Password matches, so create the session
echo "Match";
}else{
echo "The username or password do not match";
}
答案 0 :(得分:1)