我向php发送密码以与存储在数据库中的哈希值进行比较。
我的PHP是:
$enteredUser = $_POST["username"];
$enteredPass = $_POST["password"];
$query = mysqli_query($con, "SELECT passhash FROM user WHERE `username` = '$enteredUser'");
$passHash = mysql_result($query, 0);
if(password_verify($enteredPass, $passHash)){
echo "success";
}else{
echo "failure";
}
我也尝试使用
mysqli_fetch_array()
,但仍然无法正常工作。有人知道为什么这行不通吗?在此先感谢任何可以提供帮助的人。 (附带说明,$passHash
返回null) 最佳答案
您正在混合两个扩展,mysqli和mysql-mysqli_query
,然后是mysql_result
。
您也可以使用SQL注入,并且应该在将POST输入直接传递给MySQL之前对其进行清理。mysqli_query
返回一个结果对象,然后您需要从该对象获取结果。mysqli_fetch_row
将返回一行。
$enteredUser = $_POST["username"];
$enteredPass = $_POST["password"];
//...
$resultset = mysqli_query($con, "SELECT passhash FROM user WHERE `username` = '$enteredUser'");
$result = mysqli_fetch_row($resultset);
if(password_verify($enteredPass,$result[0])){
echo "success";
}else{
echo "failure";
}