Requete lors de confirmation d'inscription

kevin74 Messages postés 13 Statut Membre -  
 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 :)

<?
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

  1. alain42
     
    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
    		}
    	}
    }
    ?>
    
    0
  2. seas
     
    comment on fé pour enregistré lé donné d'un formulaire html sur la base de donnée ? (mysql)
    0
  3. kevin74 Messages postés 13 Statut Membre
     
    alain42, je te remercie de ce script améliorer, mais l'aboutissement reste le même, le 1 ne veut pas devenir 2 :/
    0
  4. alain42
     
    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&eacute; dans la base";
    	}
    }else {
    
    echo "Pb avec les valeurs du formulaire post&eacute; !";
    }
    ?>
    
    
    
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kevin74 Messages postés 13 Statut Membre
     
    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 !
    0
  7. alain42
     
    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
    0
  8. kevin74 Messages postés 13 Statut Membre
     
    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>

    0
  9. le père
     
    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
    0
  10. alain42
     
    Ha ben oui,c'est ça le bug

    je n'avais pas le code du formulaire.

    @lain
    0
  11. kevin74 Messages postés 13 Statut Membre
     
    Un grand merci ça fonctionne ! ;)

    il fallait donc remplacer GET par POST dans le formulaire
    et les $pseudo = $_POST['pseudo']; par $pseudo = $_GET['pseudo'];
    0
  12. alain42
     
    Non non,

    si tu mets method="post" dans le formulaire tu les récuperes dans ton script de traitement par $_POST['pseudo']

    @lain
    0