Requete lors de confirmation d'inscription
kevin74
Messages postés
13
Statut
Membre
-
alain42 -
alain42 -
Bonjour,
En pleine création de l'inscription à mon futur jeu, j'ai un probleme.
En effet, je procede par la validation du compte, dans la BDD on definit l'état 1 par defaut, et lorsque le joueur a confirmer son inscription apres avoir cliqué sur le lien qu'il a reçut par email, le 1 devrait etre remplacé par un 2.
Voici mon script, si vous pouviez m'aider ce ne serait pas de refus :)
si vous avez besoin des autres pages, demandez moi ;)
Merci d'avance,
Kevin74
En pleine création de l'inscription à mon futur jeu, j'ai un probleme.
En effet, je procede par la validation du compte, dans la BDD on definit l'état 1 par defaut, et lorsque le joueur a confirmer son inscription apres avoir cliqué sur le lien qu'il a reçut par email, le 1 devrait etre remplacé par un 2.
Voici mon script, si vous pouviez m'aider ce ne serait pas de refus :)
<?
mysql_connect("sql.free.fr", "eubeubeu", "lemotdepasse");
mysql_select_db("eubeubeu");
// test des variables
if (!isset($_GET['pseudo'], $_GET['cle']) ) {
// si les champs sont non renseignés on les demande
require ('http://eubeubeu.free.fr/celebrity-life/kev/Decembre07/Inscription/valide_formulaire.htm') ;
} else {
$pseudo = $_POST['pseudo'];
$cle = $_POST['cle'];
}
// on vérifie que tout est bon : clé, login et état
$query = mysql_query('SELECT * FROM `joueurs` WHERE cle = \''.$cle.'\' AND pseudo = \''.$pseudo.'\' AND etat = \'1\' LIMIT 1');
if(mysql_num_rows($query) == 1) {
mysql_query('UPDATE `joueurs` SET etat = 2 WHERE pseudo = '.$pseudo.' LIMIT 1');
echo 'Compte validé';
} else {
echo 'Clé invalide avec ce pseudo ou compte déjà activé';
require ('http://eubeubeu.free.fr/celebrity-life/kev/Decembre07/Inscription/valide_formulaire.htm');
}
?>
si vous avez besoin des autres pages, demandez moi ;)
Merci d'avance,
Kevin74
11 réponses
-
Bonsoir,
je t'ai corrigé un certain nombre d'erreurs :
Essayes comme ça:
<?php // tag php correct mysql_connect("sql.free.fr", "eubeubeu", "lemotdepasse"); mysql_select_db("eubeubeu"); // test des variables if (isset($_GET['pseudo']) AND isset($_GET['cle'])) { // le formulaire a été posté if ($_GET['pseudo']=="" OR $_GET['cle']==""){ // si les champs sont non renseignés on les demande header('location:/Inscription/valide_formulaire.htm') ; // la tu mets le chemin relatif vers le fichier formulaire par rapport à ce script } else { $pseudo = $_POST['pseudo']; $cle = $_POST['cle']; } // on vérifie que tout est bon : clé, login et état $query = mysql_query("SELECT * FROM joueurs WHERE cle = '".$cle."' AND pseudo = '".$pseudo."' AND etat = '1' "); if(mysql_num_rows($query) == 1) { $modif=mysql_query("UPDATE joueurs SET etat = '2' WHERE pseudo = '".$pseudo."' "); if($modif){ // si la requett a focntionné echo 'Compte validé'; } else { echo 'Clé invalide avec ce pseudo ou compte déjà activé'; header('location:/Inscription/valide_formulaire.htm') ; // la tu mets le chemin relatif vers le fichier formulaire par rapport à ce script } } } ?> -
-
alain42, je te remercie de ce script améliorer, mais l'aboutissement reste le même, le 1 ne veut pas devenir 2 :/
-
Salut,
je t'en ai refait un avec plus de traces, sur les erreurs eventuelles, fais bien attention que les noms de champs, dans ta base, dans ton formulaire, soit identique à ceux de ton script (majuscules/minuscules)
j'ai mis des else pour balayer tous les cas ou on ne trouve rien
Si ça ne marche pas donnes les erreurs renvoyées par le script.<?php // tag php correct mysql_connect("sql.free.fr", "eubeubeu", "lemotdepasse")or die ("Pb connexion au serveur ".mysql_error()); mysql_select_db("eubeubeu") or die ("Pb connexion a la base ".mysql_error()); // test des variables if (isset($_GET['pseudo']) AND isset($_GET['cle'])) { // le formulaire a été posté if ($_GET['pseudo']=="" OR $_GET['cle']==""){ // si les champs sont non renseignés on les demande header('location:/Inscription/valide_formulaire.htm') ; // la tu mets le chemin relatif vers le fichier formulaire par rapport à ce script } else { $pseudo = $_POST['pseudo']; $cle = $_POST['cle']; echo "pseudo reçu: ".$pseudo;" cle reçue: ".$cle; // trace a enlever qd ça marchera } // on vérifie que tout est bon : clé, login et état $query = mysql_query("SELECT * FROM joueurs WHERE cle = '".$cle."' AND pseudo = '".$pseudo."' AND etat = '1' ") or die ("Pb requette SELECT ".mysql_error()); if(mysql_num_rows($query) == 1) { $modif=mysql_query("UPDATE joueurs SET etat = '2' WHERE pseudo = '".$pseudo."' ") or die ("Pb requette UPDATE ".mysql_error()); if($modif){ // si la requette a fonctionné echo 'Compte validé'; } else { echo 'Clé invalide avec ce pseudo ou compte déjà activé'; header('location:/Inscription/valide_formulaire.htm') ; // la tu mets le chemin relatif vers le fichier formulaire par rapport à ce script } }else{ // si on n'a pas trouve la paire pseudo / cle echo "Pas de compte avec le pseudo $pseudo et la cle $cle trouvé dans la base"; } }else { echo "Pb avec les valeurs du formulaire posté !"; } ?> -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Voilà ce que ça me met :/
pseudo reçu: Pas de compte avec le pseudo et la cle trouvé dans la base
merci quand même, j'apprecie ton aide,
Joyeuses fêtes ! -
Bonjour,
si tu as:
pseudo reçu: et rien comme pseudo à côté c'est que tu ne lis pas correctement la valeur du pseudo postée par ton fomulaire
dans ton formulaire as tu :
<input type="text" name="pseudo" ...
<input type="text" name="cle" ...
et pas Pseudo ou autre la casse est importante
$pseudo = $_POST['pseudo']; ne reçoit rien c'est pour cela que tu ne fais pas l'UPDATE correctement.
Bonnes fêtes -
mon formulaire a bien ce même corps ;)
<?php
mysql_connect("sql.free.fr", "eubeubeu", "lemotdepasse");
mysql_select_db("eubeubeu");
?>
<center>
<form action="http://eubeubeu.free.fr/celebrity-life/kev/Decembre07/Inscription/valide.php" method="get">
pseudo <br><td><input type="text" name="pseudo"></td><br><br>
cle <br><input type="text" name="cle"></td>
<br><br><br>
<input type="submit" value="Valider le compte">
</form>
</center>
-
Bonjour
$pseudo = $_POST['pseudo']; ne reçoit rien
Normal, le formulaire est envoyé avec la méthode GET.
Il faut mettre méthode = "POST" dans le formulaire et remplacer les $_GET par des $_POST dans le script d'analyse du formulaire -
-
Un grand merci ça fonctionne ! ;)
il fallait donc remplacer GET par POST dans le formulaire
et les $pseudo = $_POST['pseudo']; par $pseudo = $_GET['pseudo']; -
Non non,
si tu mets method="post" dans le formulaire tu les récuperes dans ton script de traitement par $_POST['pseudo']
@lain