JeuWeb - Crée ton jeu par navigateur
Formulaire inscription dad - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Formulaire inscription dad (/showthread.php?tid=4415)



Formulaire inscription dad - iskandar - 16-10-2009

Bonjour,

J'ai regardé un peu le formulaire d'inscription avec validation par mail ( http://www.jeuweb.org/board/inscription-avec-validation-par-email-t-118.html ) et il se trouve qu'il ne fonctionne pas si bien que ça.

Pour l'inscription dans la table des membres provisoires, ça marche plutôt bien (mis à part un soucis avec la date de naissance que j'ai du mal à cerner), mais lors de la validation par mail, il semble y avoir un problème.

J'ai repéré ça dans le dernier code "traitement_validation_inscription.php" :
Code PHP :
<?php 
$reponse
= mysql_query ("SELECT pseudo,password,mail,newsletter,pays,ville,sexe,date_naissance FROM comptes_provisoirs WHERE pseudo='$pseudo' AND clef= '$clef'");
$donnees= mysql_fetch_array($reponse);
Ca devrait pas plutôt être $reSponse ?


EDIT : bon ca change rien, ca m'affiche encore :
Code PHP :
<?php 
Warning
: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/162/sdc/b/0/warkad/traitement_validation_inscription.php on line 21
compte validé



RE: Formulaire inscription dad - Argorate - 16-10-2009

Bonjour a toi.

Si tu as le temps je te conseil vivement dallez faire une petite présentation dans la section approprié.

Pour ton problème. sache que tu es le programmeur, donc c'est toi qui définit le nom de tes variables, si tu voulais marqué toto, tu pourrait, ça n'a aucun rapport avec ton erreur.

Es ce que tu as tester de lancer ta requête directement dans php my admin?
Code :
SELECT pseudo,password,mail,newsletter,pays,ville,sexe,date_naissance FROM comptes_provisoirs WHERE pseudo='$pseudo' AND clef= '$clef'
Fait un echo de ta requête, peut être que tes variable son vide?

Si ta requête généré une erreur, normal qu'il n 'arrive pas a récupérer quoi que se soit.

PS: si tu as besoin de sélectionner tous les champs d'une table, met plutôt SELECT *, plutot que SLECT pseudo, password... etc


RE: Formulaire inscription dad - Reaven - 16-10-2009

Bonjour,

J'ai lu ton message et je voulais être sûr de deux-trois trucs.
Tout d'abord est ce que la table "compte_provisoirs" existe bien ? Es-tu sûr qu'il n'y ai pas de fautes d'orthographe ?
Ensuite, je t'invite à rajouter un or die(mysql_error()) après ta requête comme suit:

Code PHP :
<?php 
$reponse
= mysql_query ("SELECT pseudo,password,mail,newsletter,pays,ville,sexe,date_naissance FROM comptes_provisoirs WHERE pseudo='$pseudo' AND clef= '$clef'")or die(mysql_error());
$donnees= mysql_fetch_array($reponse);

Ceci te permettra déjà de mieux comprendre l'erreur, en vrai français si je peux dire ^^.

Enfin, es-tu sûr que tous les champs sont bien présent dans ta table ?
N'y a-t-il pas de fautes d'orthographes ?

Pour terminer, je rejoins Argorate en disant qu'il serait en effet plus présentable si tu dois récupérer tous les champs de faire un SELECT * FROM plutôt que de faire ce que tu as fait.

Cordialement,
Reaven


RE: Formulaire inscription dad - Enark - 16-10-2009

Quasi sur que c'est un problème de champs manquant/changé et c/c bête du tuto.


RE: Formulaire inscription dad - iskandar - 16-10-2009

Bonsoir,

Effectivement c'était une erreur d'orthographe ("date_naissance" que j'avais renommé "date_de_naissance").

Toutefois, j'ai un autre problème, le transfert qu'il devrait y avoir entre la table provisoire et celle définitive ne se passe pas correctement ; Rien ne s'efface de la table provisoire, et seulement l'id et la clef s'installent dans la table définitive (tous les autres champs (pseudo, mdp ...) restent vide.

Je pense que ca doit encore être du à des problèmes d'orthographe entre la bdd et le php.
Je vais regarder de nouveau en essayant de comprendre par moi même, et si je n'y arrive toujours pas, je reviendrai vous demander de l'aide.

Merci beaucoup pour vos aides, Iskandar.


RE: Formulaire inscription dad - niahoo - 16-10-2009

hello

je rajouterais même

or die($requete.' => '.mysql_error())

pour chipoter ^^ mais c'est pratique !


RE: Formulaire inscription dad - Sephi-Chan - 17-10-2009

Moi je le déconseille, ce or die(). :p
Vous aurez l'air bien bête en production, quand votre site/jeu crashera et que tout le monde connaîtra la structure de votre table au lieu d'avoir un joli message d'erreur pour humain.


Sephi-Chan

Edit : Effectivement, Argorate, c'était un clin d'œil au sujet [Débat] "or die" ou "exception" ?. Wink


RE: Formulaire inscription dad - Argorate - 17-10-2009

On a deja eu ce débat je crois :p

Mais tant que t'es en local ça craint rien, et au pire tu fais ta propre fonction qui fait en sorte que le die() ne s'affiche qu'aux admin/dev. Smile

S'il avait mis son die(), il aurait meme pas poster ni perdu du temps, il aurait eu un message lui disant que ça requete marchais pas... Wink


RE: Formulaire inscription dad - Unkof - 18-10-2009

+1 Sephi-Chan pour le or die.

Je préfère de loin le

$requete=mysql_query("blablabala");
if(!$requete)
{
print("erreur requete blablabla");
.. possibilité de journalisation dans un fichier texte etc etc ...
}

Mais je sais que c'est hors sujet et que le débat a déjà eu lieu sans moi .... :p


RE: Formulaire inscription dad - My Hotel - 18-10-2009

Ou alors : les exceptions!!! Wink

Bon, OK, stop le HS!