1

这在我的本地主机上运行良好,但是当我将它上传到我的网络服务器时,它开始给我一个错误。这实际上不是错误,但它向​​我显示了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
4

2 回答 2

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'])){
   ....    
 }
于 2016-04-16T06:19:21.450 回答
0

我能够修复它。首先,如果您的 PHP 版本低于 5.5,并且您使用 password_hash() 对您的密码进行哈希处理,那么您已经包含了这个库,以便您的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'])){
        ...
    }
于 2016-04-16T06:20:30.940 回答