Aller au contenu

[PHP/MySQL] Comment empècher un double pseudo


Humanbomb

Sujets conseillés

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 :!:. 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:

Modifié par Portekoi
Modo : Merci d'utiliser la balise "codebox" pour les codes longs
Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Avant le Insert, fais :

<?
$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 :)

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

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

tu as fait une legere erreur :smartass:

je test et je reposte la réponse

----------------------------------------------------------------------------------------------------

Pour éviter le double post

J'ai une erreur :

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:

Modifié par Humanbomb
Lien vers le commentaire
Partager sur d’autres sites

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

tu as fait une legere erreur :smartass:

je test et je reposte la réponse

----------------------------------------------------------------------------------------------------

Pour éviter le double post

J'ai une erreur :

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

<?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();
}
?>

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...