Requete lors de confirmation d'inscription

Fermé
kevin74 Messages postés 13 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 10 août 2008 - 23 déc. 2007 à 22:04
 alain42 - 24 déc. 2007 à 17:35
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
A voir également:

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
		}
	}
}
?>
0
comment on fé pour enregistré lé donné d'un formulaire html sur la base de donnée ? (mysql)
0
kevin74 Messages postés 13 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 10 août 2008
23 déc. 2007 à 23:31
alain42, je te remercie de ce script améliorer, mais l'aboutissement reste le même, le 1 ne veut pas devenir 2 :/
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kevin74 Messages postés 13 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 10 août 2008
24 déc. 2007 à 10:56
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
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
kevin74 Messages postés 13 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 10 août 2008
24 déc. 2007 à 15:05
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
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
Ha ben oui,c'est ça le bug

je n'avais pas le code du formulaire.

@lain
0
kevin74 Messages postés 13 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 10 août 2008
24 déc. 2007 à 17:09
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
Non non,

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

@lain
0