inscription avec vérification automatique

Eléphant du PHP | 259 Messages

31 oct. 2005, 15:37

bonjour

sur mon site j'ai fait une page d'inscription avec vérification si le pseudo est pas déjà pris ni l'e-mail aussi

voici le code
ligne 73
<?php
// On commence par récupérer les champs
if(isset($_POST['name'])) $name=$_POST['name'];
else $name="";

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

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


// On vérifie si les champs sont vides
if(empty($name) OR empty($pass) OR empty($mail))
{
echo 'remplir tous les champs';
}
// Aucun champ n'est vide, on peut enregistrer dans la table
else
{
$db = mysql_connect('sql.free.fr', 'xxx', 'xxx'); // connexion à la base
mysql_select_db('yuu_sw',$db); // sélection de la base

// on regarde si l'url existe déjà
$sql = "SELECT user_id FROM a_users WHERE user_mail='$mail'";
$sql2 = "SELECT user_id FROM a_users WHERE user_pseudo='$pseudo'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$req2 = mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());

// on compte le nombre de résultats
$res = mysql_num_rows($req);
$res2 = mysql_num_rows($req2);

if($res=0) // l'url existe déjà, on affiche un message d'erreur
{
if($res2=0)
{
$sql3 = "INSERT INTO a_users(user_id, user_pseudo, user_pass,user_mail, user_credits, user_last_session) VALUES('','$pseudo','$pass','$mail','500','')";
mysql_query($sql3) or die('Erreur SQL !'.$sql3.'<br>'.mysql_error());
echo 'compte créé, vous pouvvez maintenant l utiliser';
}
else {
echo 'e-mail déjà pris';
}
}
else {
echo 'pseudo dejà pris';
}
}

mysql_close(); // on ferme la connexion

?>
ligne 125

mais j'ai un problème

a chaque enregistrement, même si le pseudo ni l'e-mail n'est pas déjà pris, il affiche quand même

pseudo déjà pris

ques ce qui va pas ???

merci d'avance
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites

Eléphant du PHP | 493 Messages

31 oct. 2005, 15:40

Le numéro des lignes ne nous est d'aucune utilité. En effet, tu annonces une erreur ligne 73 alors que ton code ne contient meme pas 73 lignes (dans cette portion) ! Il nous serait utile de connaitre le probleme comme par exemple, l'erreur renvoyée et les lignes x-1, x, x+1 où x est le numéro de la ligne comportant une erreur (73 par exemple).

Mammouth du PHP | 1311 Messages

31 oct. 2005, 15:41

salut
si tu ne fait pas l'effort de lire les regles du forum, jene vois pas pourquoi on repondrait :evil:

Mammouth du PHP | 1776 Messages

31 oct. 2005, 15:50

Pour récupérer un champ en php, faut pas juste faire $pseudo !
Le bon fonctionnement est $_POST["pseudo"] ==> la ca rique d'être mieux :wink:
Ensuite, la comparaison en PHP ne se fait (à ma connaissance) pas avec "=" mais plutôt "==" (voir tes ifs)
Corrige tout ça et repasse aprés :wink:
Note: tu le fais pour les autre champs, pkoi pas pour pseudo ? :roll:

Eléphant du PHP | 259 Messages

31 oct. 2005, 16:08

Le numéro des lignes ne nous est d'aucune utilité. En effet, tu annonces une erreur ligne 73 alors que ton code ne contient meme pas 73 lignes (dans cette portion) ! Il nous serait utile de connaitre le probleme comme par exemple, l'erreur renvoyée et les lignes x-1, x, x+1 où x est le numéro de la ligne comportant une erreur (73 par exemple).
je n'ai jamais dis qu'il y avait une erreur ligne 73, je disais juste que le début du code en quote était ligne 73.

Sinon, en effet, je me suis trompé avec $pseudo, je l'ai remplacé par $name, c'est sa qui allait pas.
merci

sujet résolu
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites

Mammouth du PHP | 1776 Messages

31 oct. 2005, 16:32

Le numéro des lignes ne nous est d'aucune utilité. En effet, tu annonces une erreur ligne 73 alors que ton code ne contient meme pas 73 lignes (dans cette portion) ! Il nous serait utile de connaitre le probleme comme par exemple, l'erreur renvoyée et les lignes x-1, x, x+1 où x est le numéro de la ligne comportant une erreur (73 par exemple).
je n'ai jamais dis qu'il y avait une erreur ligne 73, je disais juste que le début du code en quote était ligne 73.

Sinon, en effet, je me suis trompé avec $pseudo, je l'ai remplacé par $name, c'est sa qui allait pas.
merci

sujet résolu
Dans ce cas là on clique sur "résolu" dans le sujet... :wink: