可以';我上传到网络服务器后,无法查看该页面


Can't view the page after I uploaded on the webserver

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

您可以使用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'])){
   ....    
 }

我修复了它。首先,如果你的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'])){
        ...
    }