Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1293 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Resolu][Vérification de doublon dans la BDD

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Resolu][Vérification de doublon dans la BDD

n°1320108
hyptnos
GT : Gui iom
Posté le 07-03-2006 à 12:56:34  profilanswer
 

Hello c'est encore moi (dixit pb de cookies :) )
 
Alors sur mon code d'ajout d'utilisateur dans la bdd cette fois ce trouve le soucis. Enfin c'est pas un souci c'est que je ne sais pas comment faire.
 
Pour le moment tout fonctionne bien seulement on peut enregistrer deux fois le même utilisateur dans la bdd ce qui pose problème évidemment.
 
voici mon code actuelle
 

Code :
  1. <?
  2. // Connection à la base de donnée
  3. // ******************************
  4. require("..\inc\inc_connexion.php" );
  5. $db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);
  6. // ------ AJOUT D'UN UTILISATEUR --------
  7. // **************************************
  8. if(isset($_POST['pseudo'])){
  9. if(($_POST['pseudo'] == "" ) || ($_POST['password'] == "" )){
  10.  header("Location:add_users.php?erreur=empty" );
  11. }
  12. else if($_POST['password'] == $_POST['password2']){
  13.  $pseudo = $_POST['pseudo'];
  14.  $password = md5($_POST['password']); // ici, on crypte le mot de passe à l'aide de MD5 (c'est tout simple non ? :)
  15.  $nom = $_POST['nom'];
  16.  $prenom = $_POST['prenom'];
  17.  $email = $_POST['email'];
  18.  $birthday = $_POST['birthday'];
  19.  $localisation = $_POST['localisation'];
  20.  $rang = '0';
  21.  $validation = '0';
  22. // on fait l'INSERT dans la base de données
  23.  $add_user = sprintf("INSERT INTO users (pseudo, password, nom, prenom, email, birthday, localisation, rang, validation) VALUES ('$pseudo', '$password', '$nom', '$prenom', '$email', '$birthday', '$localisation','$rang','$validation')" );
  24.     mysql_select_db($sql_bdd, $db_link);
  25.     $result = mysql_query($add_user, $db_link) or die(mysql_error());
  26.  header("Location:../index.php?add=ok" );
  27. }
  28. else{
  29. header("Location:add_users.php?erreur=pass" );
  30. }
  31. }
  32. ?>


 
J'ai essayé plein de chose mais je n'ai jamais reussi je pense qu'il faut que je fasse cela dès le debut après ce bout de code :
 

Code :
  1. if(isset($_POST['pseudo'])){
  2. if(($_POST['pseudo'] == "" ) || ($_POST['password'] == "" )){
  3.  header("Location:add_users.php?erreur=empty" );
  4. }


 
Mais franchement je ne vois pas comment car sinon il me saute toute l'étape du reste de la vérification du formulaire
 
Une tite aide siou plait :)


Message édité par hyptnos le 15-03-2006 à 13:16:30
mood
Publicité
Posté le 07-03-2006 à 12:56:34  profilanswer
 

n°1320132
GaSPaRD77
Posté le 07-03-2006 à 13:22:44  profilanswer
 

Ben met un index unique sur ton champs pseudo dans ta BDD tout simplement ..

n°1320143
anapajari
s/travail/glanding on hfr/gs;
Posté le 07-03-2006 à 13:43:45  profilanswer
 

GaSPaRD77 a écrit :

Ben met un index unique sur ton champs pseudo dans ta BDD tout simplement ..


Oui mais il faut alors traiter l'erreur sql, parce que là il a un peu l'air de faire des die quand ça plante.
 
Sinon tu fais un count sur ta table pour vérifier si le pseudo existe, si oui affichage page d'erreur, sinon insert!

n°1320536
hyptnos
GT : Gui iom
Posté le 07-03-2006 à 20:37:51  profilanswer
 

Mais faut il que je fasse une boucle a part ou je l'inclu a la premiere boucle celle ou il verifie l'existance d'un pseudo.

n°1320552
mortelune
Posté le 07-03-2006 à 21:02:28  profilanswer
 

coucou
sprintf c pas booooo
enfin bon un peu de detail..

Code :
  1. 1.
  2.       <?
  3.    2.
  4.       // Connection à la base de donnée
  5.    3.
  6.       // ******************************
  7.    4.
  8.      
  9.    5.
  10.       require("..\inc\inc_connexion.php" );
  11.    6.
  12.       $db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);
  13.    7.
  14.      
  15.    8.
  16.       // ------ AJOUT D'UN UTILISATEUR --------
  17.    9.
  18.       // **************************************
  19.   10.
  20.      
  21.   11.
  22.       if(isset($_POST['pseudo'])){
  23.   12.
  24.           if(($_POST['pseudo'] == "" ) || ($_POST['password'] == "" )){
  25.   13.
  26.               header("Location:add_users.php?erreur=empty" );
  27.   14.
  28.           }
  29.   15.
  30.      
  31.   16.
  32.           else if($_POST['password'] == $_POST['password2']){
  33.   17.       
  34.   18.
  35.               $pseudo = $_POST['pseudo'];
  36.   19.
  37.               $password = md5($_POST['password']); // ici, on crypte le mot de passe à l'aide de MD5 (c'est tout simple non ? :)
  38.   20.
  39.               $nom = $_POST['nom'];
  40.   21.
  41.               $prenom = $_POST['prenom'];
  42.   22.
  43.               $email = $_POST['email'];
  44.   23.
  45.               $birthday = $_POST['birthday'];
  46.   24.
  47.               $localisation = $_POST['localisation'];
  48.   25.
  49.               $rang = '0';
  50.   26.
  51.               $validation = '0';
  52.   27.       
  53.   28.
  54.      
  55.   29.
  56.      
  57.   30.
  58.           // on fait l'INSERT dans la base de données
  59. mysql_select_db($sql_bdd, $db_link);
  60.   31. ///MAIS LA ON VERIFIFE D'ABORD
  61. $req='select count(*) as nb from users where pseudo="'.$pseudo.'"';
  62. $dq=mysql_query($req);
  63. $res=mysql_fetch_array($dq);
  64. if(isset($res['nb'])&&!empty($res['nb'])){
  65. //empty detecte les valeurs a 0...
  66. //et la il y a deja un utilisateur connecte
  67.     header("Location:../index.php?error=pb_utilisateur_deja_existant" );
  68. }else{
  69.               $add_user = sprintf("INSERT INTO users (pseudo, password, nom, prenom, email, birthday, localisation, rang, validation) VALUES ('$pseudo', '$password', '$nom', '$prenom', '$email', '$birthday', '$localisation','$rang','$validation')" );
  70.   32.
  71.              
  72.   33.
  73.                $result = mysql_query($add_user, $db_link) or die(mysql_error());
  74.   34.
  75.               header("Location:../index.php?add=ok" );
  76. }
  77.   35.
  78.           }
  79.   36.
  80.      
  81.   37.
  82.           else{
  83.   38.
  84.           header("Location:add_users.php?erreur=pass" );
  85.   39.
  86.           }
  87.   40.
  88.       }
  89.   41.
  90.      
  91.   42.
  92.       ?>


 
 
 
juste avant l'insert tu regarde s'il existe deja un utilisateur, tu peux aussi faire un mysql_num_rows ou autre....
 
Desole pour l'indentation ou les numero je n'avais pas d'editeur sous la main...juste de quoi faire un copier coller....

n°1320586
hyptnos
GT : Gui iom
Posté le 07-03-2006 à 22:04:32  profilanswer
 

C'est pas grave
je comprend en tout cas que tu fais en gros on laisse ma vérif pseudo, password comme c'est mais on vérifie l'existence d'un pseudo existant juste avant l'insert grace à une condition.
 
C'est vrai que cela parrait logique.
 
Je te remerci je vais tester cela demain.
 
Par contre si vous pouvez passer sur le topic concernant les cookies avec firefox cela serai sympa j'ai un gros souci et personne trouve :)

n°1325779
hyptnos
GT : Gui iom
Posté le 15-03-2006 à 13:17:50  profilanswer
 

Bon je viens (seulement) de tester, après une remise en forme du code , création des codes erreur, et test de creation de compte c'est niquel
 
Merci a tous :)
 
PS: Cependant mon probleme de cookies est toujours pas resolu :(


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Resolu][Vérification de doublon dans la BDD

 

Sujets relatifs
Transférer données (manuscrites) vers BDD puis les additionner[PHP] Calcul avec des nb a virgules [RESOLU]
Probleme de variables ... [résolu][Resolu] Utiliser gsoap avec Eclipse
[résolu] trouver l'adress IP[PHP] Boucle do while() a condition multiples (résolu)
[PHP] erreur introuvable (résolu)Pseudo Frames [resolu]
Dossiers Virtuels sous Wamp [résolu][RESOLU] PROB liste chainée d'objet push_back()
Plus de sujets relatifs à : [Resolu][Vérification de doublon dans la BDD


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR