FORUM Syndrome-OC - Jacky-PC


  Programmation


  Autre


  [PHP] Probleme d'envoi de données vers mysql[Resolu grâce a Trracer]

 




sam 34, s@ms Le salon de discussion : re12, gizmo15 Cartes Graphiques : mini_GUN, 1 utilisateur anonyme et 29 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Probleme d'envoi de données vers mysql[Resolu grâce a Trracer]

n°6717
menfin
ready For T/O!
Posté le 10-04-2006 à 21:53:06  profilanswer
 

Bonjour :)
voila, je cherche a mettre une pseudo liste de telephone sur un site.
malheureusement ca marche pas :p (qui l'aurait deviné?)
j'entre certaines données dans ce formulaire, et, il cree bien une nouvelle ligne dans mysql, mais n'envoit pas les données.
je suppose donc que j'ai fait une erreur :p
 
voici le code:
la bdd est "jeff", et les données de connexion a la base sont juste

Code :
  1. <html>
  2. <title>Ajout d'un enregistrement</title>
  3. <body>
  4. <?
  5. /* ___________________________________________________ */
  6. /* ! Par Jean-François GAZET: jeffgazet@mail.cpof.fr ! */
  7. /* !_________________________________________________! */
  8. /*_____________________CONNEXION__________________________*/
  9. $db_link=mysql_connect("localhost","root","" );
  10. /* _________________RECUP_DES_DONNEES____________________ */
  11.   while (list($var, $value) = each($HTTP_GET_VARS))
  12.     {
  13.       $tab_asso["$var"] = $value;
  14.     }
  15. /* ____________________FORMULAIRE________________________ */
  16. switch ($tab_asso[ok]) {
  17. /* ____ENREGISTREMENT_____ */
  18. case 1;
  19. $idmax=mysql_db_query("jeff","select max(id) from carnet",$db_link);
  20. $idmax_r=mysql_result($idmax,0,"max(id)" );  $n=$idmax_r+1;
  21. $requete=mysql_query("insert into carnet values($n,'$nom','$prenom','$adresse1','$adresse2','$cpostal','$ville','$tel','$fax','$email')" );
  22. echo "<p align=center><h1 align=center>Enregistrement réussi.<br><br><a href='carnet.php3'>Retour</a></p>";
  23. break;
  24. /* ______AFFICHAGE DU FORMULAIRE____ */
  25. default;
  26. echo "<blockquote><table border=0><form method='get' action='ajout.php3'><input type='hidden' name=ok value=1>
  27. <td>Nom</td><td><input type='text' name=nom  size=30 maxlenght=50></td>
  28.        <td align=right>Prénom</td><td><input type='text' name=prenom  size=30 maxlenght=50></td><tr>
  29. <td>Adresse</td><td><input type='text' name=adresse1  size=30 maxlenght=60></td>
  30. <td align=right>Adresse (complément)</td><td><input type='text' name=adresse2  size=30 maxlenght=60></td><tr>
  31. <td>Code postal</td><td><input type='text' name=cpostal size=30 maxlenght=5></td>
  32. <td align=right>Ville</td><td><input type='text' name=ville size=30 maxlenght=30></td><tr>
  33. <td>Téléphone</td><td><input type='text' name=tel size=30 maxlenght=15></td>
  34. <td align=right>Fax</td><td><input type='text' name=fax size=30 maxlenght=15></td><tr>
  35. <td>E-mail</td><td><input type='text' name=email size=30 maxlenght=30></td><tr>
  36.       </table></blockquote>";
  37. echo "<table align=center><tr><td><input type='submit' value='Ajouter'></td><td><input type='reset' value='Tout effacer'></td></form><td><form method=get action='carnet.php3'><input type=submit value='Annuler'></td></form></table>";
  38. break;
  39. }
  40. MYSQL_CLOSE($db_link);
  41. ?>
  42. </body>
  43. </html>


 
voila, si qqun a une idee, une piste a suivre, je suis preneur :p


Message édité par menfin le 11-04-2006 à 09:30:31
mood
Google
Posté le 10-04-2006 à 21:53:06  profilanswer
 

n°6718
Trracer
Posté le 10-04-2006 à 22:42:46  profilanswer
 

Code :
  1. while (list($var, $value) = each($HTTP_GET_VARS))
  2.     {
  3.       $tab_asso["$var"] = $value;
  4.     }


 
Ca sert à quoi alors que tu n'utilise pas $tab_asso par la suite... De plus c'est une fonction qui existe deja dans le langage, pas le peine de la recoder.
 

Code :
  1. $requete=mysql_query("insert into carnet values($n,'$nom','$prenom','$adresse1','$adresse2','$cpostal','$ville','$tel','$fax','$email')" );


 
Si les globals sont à off (par defaut sur toute version relativement recente de php), ça passera pas, il faut utiliser $_POST et autre...

n°6719
menfin
ready For T/O!
Posté le 10-04-2006 à 22:50:50  profilanswer
 

Hello,
merci pour ta reponse;
si j'ai bien compris, je peux supprimer ceci?

Code :
  1. #   while (list($var, $value) = each($HTTP_GET_VARS))
  2. #     {
  3. #       $tab_asso["$var"] = $value;
  4. #     }


 
le probleme est reglé, register_globals etait off, j'aurais du y penser, merci. je l'ai donc tourné On.
 
merci, Olivier

n°6720
Trracer
Posté le 10-04-2006 à 23:02:03  profilanswer
 

C'est pas la solution non plus, si les globals sont à off c'est pour une question de sécurité et de lisibilité du code aussi.  
Tu devrais plutot modifier ton code afin qu'il passe avec les globals à off (configuration par defaut de php).
 
Et oui tu peux virer le while, vu que tu ne te sert pas du tableau par la suite. Ca existe deja comme fonction, "import_vars" il me semble (pas sur, j'ai plus le truc en tête).

n°6721
menfin
ready For T/O!
Posté le 11-04-2006 à 09:28:50  profilanswer
 

ok, register_globals on n'est qu'une solution temporaire, je vais apporter les modifications necessaires au script. merci.
 
et je vais un peut me documenter sur cette fonction qui permet de remplacer while.
 
merci bcp :)

n°6722
Trracer
Posté le 11-04-2006 à 09:42:41  profilanswer
 

Je me suis trompé c'est pas import_vars, c'est plutot import_request_variables (importe les variables POST, GET, etc en variables locales).
Mais le mieux reste d'utiliser les tableaux superglobaux ($_POST, $_GET, etc), voir ici. Ne serait-ce que pour la lisibilité du code.

mood
Google
Posté le 11-04-2006 à 09:42:41  profilanswer
 


Aller à :
Ajouter une réponse

  FORUM Syndrome-OC - Jacky-PC


  Programmation


  Autre


  [PHP] Probleme d'envoi de données vers mysql[Resolu grâce a Trracer]

 

Hit Parade