Je pense avoir trouvé le pourquoi de cette erreur mais une confirmation me mettrait plus à l'aise :
Au moment de la mise à jour des données de configuration de l'utilisateur, la requête fait appel à $userdata['id'] qui serait une remontée de toutes
les infos de l'utilisateur. Et ces infos ne sont pas "compatibles" avec la table #_users de PunBB.
Je n'ai pas trouvé ou était initialisée cette $userdata['id'] dans le code original de PWG.... Je cherche toujours...
Désolé je vois pas d'où peut provenir le problème et surtout je ne me rappel plus comment il marchait le mod :(
Salut flipflip et merci pour ta réponse.
oui, l'utilisateur existe. J'ai essayé avec d'autres comptes existant dans la table #_users de PWG et PunBB => Même pb.
Salut, au hasard est ce que cette utilisateur existe dans PunBB ?
Salut à tous.
En parallèle du dev Plugin du même nom, je me penche sur le fonctionnement du Mod. Et j'ai remarqué un petit bug (?) lorsqu'un utilisateur inscrit sur ma galerie veut changer un paramètre de son profil (par exemple, la langue de la galerie).
A la soumission du changement de langue, un message d'erreur, très furtif mais bien présent, s'affiche :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in (...)/modules/register_punbb/update_profile.php on line 48
Voici le fichier update_profile.php en question. La ligne 48 marquée entre => et <= :
// Méthode hashage du mot de passe. if (function_exists('sha1')) // Only in PHP 4.3.0+ { $password = sha1($_POST['use_new_pwd']); } else if (function_exists('mhash')) // Only if Mhash library is loaded { $password = bin2hex(mhash(MHASH_SHA1, $_POST['use_new_pwd'])); } else { $password = md5($_POST['use_new_pwd']); } // Selection de l'id utilisateur dans punBB $query = ' SELECT id_user_punbb FROM '.MOD_REGISTER_PUNBB_ID .' WHERE id_user_pwg = '.$userdata['id'].'; '; $result = pwg_query($query); => while($row = mysql_fetch_array($result)) <= { // Modification du mail $query = ' UPDATE '.$conf['punbb_prefix'].'users SET email = \''.$_POST['mail_address'].'\''; // Si le champs nouveau mot de passe n'est pas vide // alors on insert la modification dans la table // users de PunBB en hashant le mot de passe. if (!empty($_POST['use_new_pwd'])) { $query.= ', password = \''.$password.'\''; } $query.= ' WHERE id = '.$row['id_user_punbb'].'; '; $result = pwg_query($query); }
Mes faibles connaissances dans ce domaine me poussent à demander un peu d'aide aux spécialistes. Qu'est ce qui ne va pas avec cette boucle while ? Ou, plutôt, avec mysql_fetch_array, puisqu'il s'agit de cette fonction qui n'est pas reconnue par MySQL ?