Version complète: sur le forum Webmaster Hub : [PHP/MySQL] Comment empècher un double pseudo
Webmaster Hub > Création et exploitation de Sites Internet > Les fondations d'un site
Humanbomb
Salut tous le monde,
J'ai développé un script pour que les utilisateurs s'inscrivent sur le site qui envoie les données dans la bdd avec un id automatique, un pseudo, un mdp, et un email, mais je me suis aperçu que deux personnes peuvent avoir le même pseudo, il faut avouer que c'est un peu génant q_smallexcla.gif. Je cherche la modification à apporter à mon script.

Mon script (PHP) :
CODE
<?php
if(isset($_POST['pseudo'])) $pseudo=$_POST['pseudo'];
else $pseudo="";

if(isset($_POST['mdp'])) $mdp=$_POST['mdp'];
else $mdp="";

if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";

if(empty($pseudo) OR empty($mdp) OR empty($email))
{
echo '<font color="red">Attention, aucun champs peut rester vide !</font>';
}

else
{
include('connect.php');

$sql = "INSERT INTO tbl_user(id, login, mdp, email) VALUES('','$pseudo','$mdp','$email')";

mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

echo 'Votre inscription à été réalisé avec succée.';
include('connexion.php');
mysql_close();
}
?>


Donc voila je fais appelle à vous hypocrite.gif
Portekoi
Bonsoir,

Avant le Insert, fais :

CODE
<?
$sql = "select 1 from tbl_user where login = '".$login."'";
$requete = mysq_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
//Si on ne trouve pas ce pseudo dans la base...
if mysql_num_rows($requete) == 0{
//Ton code de création
}
else{
//Ton code en cas de doublon
}
?>

Je suis un peu rouillé en PHP, doit peut être y avoir une erreur mais le principe y est smile.gif
Humanbomb
$requete = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

tu as fait une legere erreur smartass.gif
je test et je reposte la réponse

----------------------------------------------------------------------------------------------------
Pour éviter le double post

J'ai une erreur :
CODE
Parse error: syntax error, unexpected T_STRING, expecting '(' in H:\serveur\PortableZMWS-0.8.15-fr-r01\PortableZMWS\ZMWS\_web.zmwsc\site\add.php on line 26


shutup.gif
Humanbomb
[quote name='Humanbomb' date='dimanche 9 mars 2008 à 01:42' post='262878']
$requete = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

tu as fait une legere erreur smartass.gif
je test et je reposte la réponse

----------------------------------------------------------------------------------------------------
Pour éviter le double post

J'ai une erreur :
CODE
Parse error: syntax error, unexpected T_STRING, expecting '(' in H:\serveur\PortableZMWS-0.8.15-fr-r01\PortableZMWS\ZMWS\_web.zmwsc\site\add.php on line 23


CODE
<?php
if(isset($_POST['pseudo'])) $pseudo=$_POST['pseudo'];
else $pseudo="";

if(isset($_POST['mdp'])) $mdp=$_POST['mdp'];
else $mdp="";

if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";

if(empty($pseudo) OR empty($mdp) OR empty($email))
{
echo '<font color="red">Attention, aucun champs peut rester vide !</font>';
}

else
{
include('connect.php');

$sql = "select 1 from tbl_user where login = '".$login."'";
$requete = mysq_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
//Si on ne trouve pas ce pseudo dans la base...
if mysql_num_rows($requete) == 0{
//Ton code de création
}
else{
echo 'Pseudo déja utilisé'
}

$sql = "INSERT INTO tbl_user(id, login, mdp, email) VALUES('','$pseudo','$mdp','$email')";

mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

echo 'Votre inscription à été réalisé avec succée.';
include('connexion.php');
mysql_close();
}
?>
Portekoi
Remplace ca :

if mysql_num_rows($requete) == 0

par ca :

if (mysql_num_rows($requete) == 0)
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.