我上传到网络服务器后无法查看该页面

时间:2016-04-16 05:51:04

标签: php passwords webserver password-hash php-password-hash

这在我的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

2 个答案:

答案 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'])){
        ...
    }