comment peut on faire une condition sur un champ pour k'il ne doit pa etre repéter par un autre utilisateur exemple
dans la BD on comme pseudo ah20 , il ne faut pas qu'un autre utilisateur ait le même non , aider moi svp
Version imprimable
comment peut on faire une condition sur un champ pour k'il ne doit pa etre repéter par un autre utilisateur exemple
dans la BD on comme pseudo ah20 , il ne faut pas qu'un autre utilisateur ait le même non , aider moi svp
Si c'est au niveau du SGBD que tu parles, tu dois définir le champ pseudo comme clé primaire.
OU plutôt le mettre en UNIQUE non ?
Mais avant de valider son inscription rien ne t'empêche de vérifier si un autre utilisateur utilise le même pseudo
Si nb retourne 1 => pseudo déjà utilisé (ça n'empêche pas de le mettre en unique)Code:
1
2
3 SELECT COUNT(*) AS nb FROM `user` WHERE pseudo = 'test';
s'il vous plait comme je ss débutante tu peux m'expliquer ou je mettre ca voilà c mon code PHP
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 <?php require ('config.php'); function verifMail($mail) { $synthaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#'; if(preg_match($synthaxe,$mail)) return true; else return false; } // Si j'ai appuyé sur créer votre compte if($_POST['Submit']) { if(empty($_POST["pseudo"])) $error[] = "Vous devez saisir votre pseudo."; if(!verifMail($_POST["mail"])) $error[] = "Vous devez saisir une adresse mail correcte."; if(empty($_POST["mdp1"])) $error[] = "Vous devez saisir votre mot de passe"; if(empty($_POST["mdp2"])) $error[] = "Vous devez saisir la confirmation de votre mot de passe"; if($_POST["mdp1"] != $_POST["mdp2"]) $error[] = "Les mots de passe sont différents."; if($_POST["langue"] == 0) $error[] = "Vous devez choisir votre langue."; if(empty($_POST["nom"])) $error[] = "Vous devez saisir votre nom."; if(empty($_POST["prenom"])) $error[] = "Vous devez saisir votre prénom."; if(empty($_POST["date"])) $error[] = "Vous devez saisir votre date de naissance."; if($_POST["pays"] == 0) $error[] = "Vous devez choisir votre pays."; if(isset($error)) { echo "<ul>"; for($i=0;$i<count($error);$i++) { echo "<h3><li style='color:green'>".$error[$i]."</li></h3>"; } echo "</ul>"; } else { $pseudo=$_POST['pseudo']; $mail = $_POST['mail']; $mdp1 =$_POST['mdp1'] ; $langue =$_POST['langue'] ; $sexe = $_POST['sexe']; $nom = $_POST['nom'] ; $prenom = $_POST['prenom']; $date = $_POST['date']; $pays = $_POST['pays']; $proposition = $_POST['proposition']; if (empty($error)){ $req = "INSERT client SET pseudo='$pseudo',mail='$mail',mdp1='$mdp1',langue='$langue',sexe='$sexe',nom='$nom',prenom='$prenom',date='$date',pays='$pays',proposition='$proposition'"; mysql_query($req); echo"<center>votre compte est valider vous devez confimer dans mail</center>"; } } } ?>
j'aimerai bien une condition pour que l'utilisateur ne peut pas entrer un pseudo déja existant je' utilise phpMyadmin
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 <?php require ('config.php'); function verifMail($mail) { $synthaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#'; if(preg_match($synthaxe,$mail)) return true; else return false; } // Si j'ai appuyé sur créer votre compte if($_POST['Submit']) { if(empty($_POST["pseudo"])) $error[] = "Vous devez saisir votre pseudo."; $nb = mysql_query("SELECT * FROM user WHERE pseudo = '" . addslashes($_POST["pseudo"]) . "' LIMIT 1"); if(mysql_num_rows($nb)) $error[] = "Pseudo déjà utilisé."; if(!verifMail($_POST["mail"])) $error[] = "Vous devez saisir une adresse mail correcte."; if(empty($_POST["mdp1"])) $error[] = "Vous devez saisir votre mot de passe"; if(empty($_POST["mdp2"])) $error[] = "Vous devez saisir la confirmation de votre mot de passe"; if($_POST["mdp1"] != $_POST["mdp2"]) $error[] = "Les mots de passe sont différents."; if($_POST["langue"] == 0) $error[] = "Vous devez choisir votre langue."; if(empty($_POST["nom"])) $error[] = "Vous devez saisir votre nom."; if(empty($_POST["prenom"])) $error[] = "Vous devez saisir votre prénom."; if(empty($_POST["date"])) $error[] = "Vous devez saisir votre date de naissance."; if($_POST["pays"] == 0) $error[] = "Vous devez choisir votre pays."; if(isset($error)) { echo "<ul>"; for($i=0;$i<count($error);$i++) { echo "<h3><li style='color:green'>".$error[$i]."</li></h3>"; } echo "</ul>"; } else { $pseudo=$_POST['pseudo']; $mail = $_POST['mail']; $mdp1 =$_POST['mdp1'] ; $langue =$_POST['langue'] ; $sexe = $_POST['sexe']; $nom = $_POST['nom'] ; $prenom = $_POST['prenom']; $date = $_POST['date']; $pays = $_POST['pays']; $proposition = $_POST['proposition']; if (empty($error)){ $req = "INSERT client SET pseudo='$pseudo',mail='$mail',mdp1='$mdp1',langue='$langue',sexe='$sexe',nom='$nom',prenom='$prenom',date='$date',pays='$pays',proposition='$proposition'"; mysql_query($req); echo"<center>votre compte est valider vous devez confimer dans mail</center>"; } } } ?>
=> php.dev est plus rapide ^^Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 function isDispo($pseudo) { $pseudo = mysql_real_escape_string($pseudo); $sql = "SELECT COUNT(*) as nb FROM `client` WHERE `pseudo` = '$pseudo'"; $ressource = mysql_query($sql); $result = mysql_fetch_assoc($ressource); if($result['nb'] == 1 ) return false; else return true; } if(empty($_POST["pseudo"])) $error[] = "Vous devez saisir votre pseudo."; elseif(!isDispo($_POST["pseudo"])) $error[] = "Pseudo déjà utilisé.";
quand je l'ai executer ca m'arrive ca ??????
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Documents and Settings\Afifa\Bureau\test\new2.php on line 20
votre compte est valider vous devez confimer dans mail
Excuse-moi mais c'est la table client et non pas user :oops:
Code:SELECT .... FROM client ......
merci bcqqqqq
De rien, voici un petit tuto pour bien se protéger contre les injections sql
http://thierrylhomme.developpez.com/php/php_secure/#bdd