insertion de données dans une table sql

insertion de données dans une table sql - PHP - Programmation

Marsh Posté le 19-09-2004 à 16:33:43    

Bonjour à tous,
je fait un espace membre mais j'ai des petits problèmes... :(  
Lors de l'inscription d'un membre, le programme est censé rentrés les données récuperés dans le formulaire dans la base de données, or il les rentre tous sauf un: login...
Quelqu'un peut-il m'aider? merci d'avance...
 

Code :
  1. <?
  2. require("fonctions.php" );
  3. est_vide($email,"Vous n\'avez pas saisi d\'email !" );
  4. verif_email($email);
  5. est_vide($login,"Vous n\'avez pas saisi de login !" );
  6. est_vide($pass1,"Vous n\'avez pas saisi de mot de passe !" );
  7. est_vide($pass2,"Vous n\'avez pas confirmé votre mot de passe !" );
  8. if($pass1!=$pass2) {
  9. $message="Les deux mots de passe communiqués ne sont pas indentiques !";
  10. echo"<script language=\"Javascript\">alert(\"$message\" );history.back(-1);</script>";
  11. exit;
  12. }
  13. //Parametres de connexion
  14. $host = 'bsql-t.free.fr';
  15. $db_login = '********';
  16. $db_pass = '**********';
  17. $bdd = '*********';
  18. $db_table= '**********';
  19. //connexion à la base de donnée
  20. $db = mysql_connect($host,$db_login,$db_pass) or die ("erreur de connexion" );
  21. //selection base de donnée
  22. mysql_select_db($bdd,$db) or die ("erreur de connexion base" );
  23. $result = mysql_query("select login from $db_table where login = '$login'" );
  24. while(list($login) = mysql_fetch_row($result)) {
  25. $numrows = mysql_num_rows($result);
  26. if ($numrows>0) {
  27. $message="Ce login existe déjà...";
  28. echo"<script language=\"Javascript\">alert(\"$message\" );history.back(-1);</script>";
  29. exit;
  30.     }
  31. }
  32. $date=date("d-m-Y" );
  33. $ip=$REMOTE_ADDR;
  34. //Cryptage du mot de passe
  35. $bon_pass = md5( $pass1 );
  36. // Requete d'insertion MYSQL
  37. $requete = "INSERT INTO $db_table (login,pwd,sexe,email,date_inscription,ip) VALUES ('$login', '$bon_pass','$sexe', '$email', '$date', '$ip')";
  38. $execution = mysql_db_query($bdd, $requete) or die (mysql_error()) ;
  39. session_register('login');
  40. header('Location: membres.php');
  41. mysql_close;
  42. ?>

Reply

Marsh Posté le 19-09-2004 à 16:33:43   

Reply

Marsh Posté le 19-09-2004 à 17:03:58    

up STP

Reply

Marsh Posté le 19-09-2004 à 17:57:56    

A priori je vois pas d'erreurs dans le script, dans ce genre de cas fais un echo de la requete SQL pour voir si elle correspond bien à ce qu'on attend (je me suis déja fait surprendre avec des saisies bizarres), ensuite essaye de passer la requete en question dans PHPMyAdmin (toujours pour voir  s'il n'y a pas un problème au niveau de la requête).

Reply

Marsh Posté le 20-09-2004 à 13:50:48    

je v essayer merci

Reply

Marsh Posté le 20-09-2004 à 21:40:03    

PHPMyAdmin me répond que c correct... Je suis completement pommé...

Reply

Marsh Posté le 21-09-2004 à 08:48:29    

J'ai peut etre une idée:
 
tu utilise $login pour le login du formulaire, mais également pour le résultat de la requete:
list($login) = mysql_fetch_row($result)
 
Je pense que quand ta requete ne retourne pas de résultat, tu te retrouve avec $login=''
Et c'est quand ta requete ne trouve pas de login que tu insert l'enregistrement --> tu insert ''
 
Donc ta resuete SQL est bonne en effet, mais ta variable $login contient une chaine vide quand tu l'insert.
 
Pour vérifier, rajoute un echo $login; juste avant ta requete d'insertion, à mon avis il ne va rien afficher... sinon ben je suis comme les autres, je vois pas d'ou ça peut venir...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 21-09-2004 à 20:02:40    

NIKEL c ça Merci Beaucoup Xav_!!!

Reply

Marsh Posté le 22-09-2004 à 09:28:15    

de rien :D


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed