2016-04-16 2 views
1

Cela fonctionne bien sur mon hôte local, mais lorsque je l'ai téléchargé sur mon serveur Web, il a commencé à me donner une erreur. Ce n'est pas une erreur en fait, mais ça me montre un page is not working. Page is currently unable to handle this request. Cela se voit sur ma page changepassword.php. Je ne suis pas vraiment sûr de ce que je devrais faire?Impossible d'afficher la page après avoir téléchargé sur le serveur Web

$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."; 
    } 

J'ai essayé

$sql=("SELECT * FROM profile WHERE username='$user_check'"); 
$db_check=$db->query($sql); 
$row = $db_check; 
if(password_verify($old_pwd,$row['password'])){ 
    ....  
} 

mais il me donne une erreur fatale de

Fatal error: Cannot use object of type mysqli_result as array 
+0

Vérifiez votre version de PHP. password_verify est disponible seulement dans v> = 5.5 –

+0

Ici vous pouvez suivre http://php.net/manual/fr/function.password-verify.php –

+0

Je l'ai déjà fait et c'est la version 5.5.30, j'ai inclus cette lib de [ ce site] (https://github.com/ircmaxell/password_compat) dans ma page de connexion pour que ma fonction 'password_verify() fonctionne, et cela a fonctionné, j'ai fait de même sur' changepassword.php' mais ce n'est pas travail. @BikashPaul – Louie

Répondre

1

Vous pouvez utiliser fetch_assoc() pour aller chercher la ligne.

Essayez le code suivant:

$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'])){ 
    ....  
} 
+0

Je viens de le faire, désolé, je n'ai pas vu votre réponse, mais j'ai fait le même bon travail lol btw :) – Louie

+0

oups, désolé, je pensais que je l'ai déjà fait. :RÉ – Louie

0

j'ai pu le réparer. Tout d'abord, si vous avez une version de PHP inférieure à 5.5 et que vous utilisez un mot de passe_hash() en hachant votre mot de passe, vous avez inclus this libary pour que votre fonction password_hash fonctionne.

La raison pour laquelle je ne peux pas voir ma page changepassword.php est parce que j'ai utilisé une fausse déclaration dans ma condition. Donc je l'ai fait de cette façon à la place et ça marche maintenant.

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