Page 1 sur 1

login et email unique

Posté : 19 oct. 2005, 00:55
par gimpycpu
Bonjour,
Je suis nouveau en php et je desire avec mon script creer un login donc jai dans ma base sql un field login,pass,email,etc

donc mon script de creation marche mais je desire que un utilisateur ne peu se creer un account avec le meme email et login.

$sql = 'SELECT login,email, FROM members';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
{
if $data['login'] == $login
{
die('This login has been already taken')
}
elseif $data['email'] == $email
{
die('This email is already associated to an account')
}
else
{
mysql_query("INSERT INTO members(id,name,lastname,login,password,email,egoldaccount) VALUES('','$name','$lastname','$login','$mdpassword','$email','$egoldaccount')");
}
mysql_close();

donc je voulais savoir ou est lerreur merci a lavance de votre aide

Posté : 19 oct. 2005, 01:01
par Rei Itchido
Utilises les balises PHP (les balises au-dessus de ton message) ça sera plus lisible ;)

Y a-t-il un message d'erreur?
Qu'est-ce qui ne fonctionne pas au juste?

Posté : 19 oct. 2005, 01:05
par gimpycpu
re bonjour
oui il y a une erreur
Parse error: parse error, unexpected T_VARIABLE, expecting '(' in d:\program files\easyphp1-8\www\verif.php on line 19 la ligne 19 cest

if $data['login'] == $login

merci encore
et il y a des balise php ce nest qune parti du script ;)

Posté : 19 oct. 2005, 01:08
par Rei Itchido
et il y a des balise php ce nest qune parti du script ;)
Je parlais pour que ton message là, sur le forum, soit lisible...regarde les balises au dessus si tu reponds à mon message par exemple. Edites ton 1er message en mettant ton code entre des balises PHP ça le rendra plus facile à lire

Concernant le problème en lui-même, la syntaxe pour un if est if()
Même chose pour elseif.
Tu as donc oublié les parenthèses.

Posté : 19 oct. 2005, 01:13
par gimpycpu
re bonjour :p
ah ok merci je savais pas ca les cote php merci :) tk
ok donc mes () sont pas correct et pour demandé un request dinformation a la db ca a lair correcte?

Merci
$sql = 'SELECT login,email, FROM members'; 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
while($data = mysql_fetch_assoc($req)) 
{ 
if ($data['login'] == $login )
{ 
die('This login has been already taken') 
} 
elseif ($data['email'] == $email) 
{ 
die('This email is already associated to an account') 
} 
else 
{ 
mysql_query("INSERT INTO members(id,name,lastname,login,password,email,egoldaccount) VALUES('','$name','$lastname','$login','$mdpassword','$email','$egoldaccount')"); 
} 
mysql_close(); 

Posté : 19 oct. 2005, 01:27
par Rei Itchido
$sql = 'SELECT login,email, FROM members'; 
La virgule après email est de trop.
Sinon si tu es connecté à la BD, ça devrait fonctionner (même si tu pourrais faire plus simple comme requête que de passer en revue tous les enregistrements).

$sql = mysql_query('SELECT COUNT(login) FROM members WHERE login='.$login.' AND email='.$email.'');
$nb = mysql_result($sql, 0);
$nb va te renvoyer le nombre d'enregistrements qui ont $login comme login et $email comme email.
Je te laisse faire le test derrière ;)