Page 1 sur 1

éviter les inscriptions avec le même pseudo.

Posté : 16 mai 2006, 15:02
par shadou
Bonjour a tous :)
Voila je travaille actuellement sur un script d'inscription tout simple, qui demande juste le pseudo, mot de passe et adresse mail.
Je souhaiterais éviter que des personnes s'inscrivent avec le même pseudo.
Pour cela j'ai adopté une méthode qui n'a pas trop l'air de marcher :(
                                      //Connexion à mysql.
										require("config.inc.php");
                                        mysql_connect($host,$username,$password);
                                        mysql_select_db($bdd_name);
                                                                              
                                        $req_user = mysql_query('SELECT pseudo FROM membres ORDER BY id');
										while($user = mysql_fetch_array($req_user))
										{
										if(strtolower($user['pseudo']) == strtolower($_POST['pseudo']))
											{
												echo 'Le nom d\'utilisateur existe deja';
											}
										else
											{
										//On éxécute la requête qui enregistre un nouveau membre.
                                        mysql_query("INSERT INTO membres (id, pseudo, mot_passe, confirmation, email, rang) VALUES ('', '".$pseudo."', '".$mot_passe."', '1', '".$email."', '0')");
       
											}
ce n'est qu'une partie de mon code, mais c'est la ou sa coince!
En effet lorsque je veux m'inscrire avec le même pseudo qu'un autre membre, sa me m'affiche " le nom d'utilisateur existe déja" d'une part le nombre de fois qu'il y a de membres dans la table,
mais De plus.... sa m'insère quand même le membre dans la BDD...
et sa m'envoie le mail de confirmation!

J'ai beau réfléchir, je n'arrive pas a trouver de solution a mon problème :(

Posté : 16 mai 2006, 15:09
par béka
tu as essayé d'ajouter la fonction exit() après ta commande echo ?
Peut etre que ca peut marcher

Posté : 16 mai 2006, 15:18
par shadou
je viens de tester ^^
sa ne marche pas.. :(

Posté : 16 mai 2006, 15:28
par béka
a la place de tout ton while, essai ca :
$num = mysql_num_rows($req_user);
if ($num > 0)
{
echo "login existe deja";
exit();
}
else
{...
Normalement, il me semble que cela doit marcher

Posté : 16 mai 2006, 15:50
par shadou
bon sa marche...
mais pas totalement, il affiche bien que le pseudo est déja enregistré
mais pour tous les pseudos que je rentre... qu'ils existent déja ou pas.... -_-'

voila mon code après ce que tu m'as dit de faire:
 {
                                        //Connexion à mysql.
										require("config.inc.php");
mysql_connect($host,$username,$password);
mysql_select_db($bdd_name);
                                                                              
$req_user = mysql_query('SELECT pseudo FROM membres ORDER BY id');

		$num = mysql_num_rows($req_user);
						if ($num > 0)
							{
							echo "login existe deja";
							exit();
							}
							else
							{
							//On éxécute la requête qui enregistre un nouveau membre.
mysql_query("INSERT INTO membres (id, pseudo, mot_passe, confirmation, email, rang) VALUES ('', '".$pseudo."', '".$mot_passe."', '1', '".$email."', '0')");
												
							}

Posté : 16 mai 2006, 15:55
par béka
ajoute dans ta commande sql :

Code : Tout sélectionner

WHERE pseudo='$_POST[nomduchampduformulaire]'";

Posté : 16 mai 2006, 16:00
par shadou
ok je fais sa je reviens dans 1h ^^ j'ai cours xD

idem pseudo

Posté : 16 mai 2006, 19:04
par tilillois
moi j'ai
if ($num!=0)


Posté : 18 mai 2006, 09:17
par shadou
tout marche impec après que j'ai changé ma requère sql :)
merci béka!
[problème résolu ]

Posté : 18 mai 2006, 09:26
par béka
de rien