这在我的localhost上运行良好,但是当我将它上传到我的网络服务器上时,它开始给我一个错误。实际上这不是错误,但是它显示了page is not working. Page is currently unable to handle this request.
它在我的changepassword.php页面上显示。我不确定我该怎么做?
$sql=("SELECT * FROM profile WHERE username='$user_check'");
$db_check=$db->query($sql);
if(password_verify($old_pwd,$db_check->fetch_assoc()['password'])){
...
}
else{
$error = "Old password is incorrect.";
}
我试过
$sql=("SELECT * FROM profile WHERE username='$user_check'");
$db_check=$db->query($sql);
$row = $db_check;
if(password_verify($old_pwd,$row['password'])){
....
}
但它给了我一个致命的错误
Fatal error: Cannot use object of type mysqli_result as array
答案 0 :(得分:1)
您可以使用fetch_assoc()来获取行。
请尝试以下代码:
$sql=("SELECT * FROM profile WHERE username='$user_check'");
$db_check=$db->query($sql);
$row = $db_check->fetch_assoc();
if(password_verify($old_pwd,$row['password'])){
....
}
答案 1 :(得分:0)
我能够解决它。首先,如果您的PHP版本低于5.5并且您在密码中使用了password_hash(),那么您已经包含了this libary,以便您的password_hash
功能正常工作。
我无法查看我的changepassword.php页面的原因是因为我在我的情况下使用了错误的语句。所以我这样做了,而且它现在正在工作。
$sql=("SELECT * FROM profile WHERE username='$user_check'");
$db_check=$db->query($sql);
$row = $db_check->fetch_assoc();
if(password_verify($old_pwd, $row['password'])){
...
}