Se connecter / S'enregistrer
Votre question

Recuperation des données d'un formlaire

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
8 Janvier 2011 11:06:27

Bonjour

voila, j'ai integrer une liste liee dans mon formulaire et ça marche en formulaire et mon probleme c'est que les données des différents champs de ce formulaire ne s'enregistre pas dans ma base de données mysql. je travaille sous xampp(contient php5 et mysql 3. ).
je veux avoir ce que je doit ecrire pour que les différents données de differents champs de ce formulaire s'enregistre dans ma base de donnée.

et voila la page contenant le formulaire:

  1. <SCRIPT language="JavaScript">
  2. <!--
  3.  
  4. function VerifMail()
  5. {
  6. a = document.Verif.email.value;
  7. valide1 = false;
  8.  
  9. for(var j=1;j<(a.length);j++){
  10. if(a.charAt(j)=='@'){
  11. if(j<(a.length-4)){
  12. for(var k=j;k<(a.length-2);k++){
  13. if(a.charAt(k)=='.') valide1=true;
  14. }
  15. }
  16. }
  17. }
  18. if(valide1==false) alert("Veuillez saisir une adresse email valide.");
  19. return valide1;
  20. }
  21.  
  22. //-->
  23. </SCRIPT>
  24. <script type="text/javascript" src="liste/js/listeLiees.js"></script>
  25. <style type="text/css">
  26. label {
  27. width: 350px;
  28. float: left;
  29. }
  30. select {
  31. width: 200px;
  32. }
  33. </style>
  34. </head>
  35. <body topmargin="0" marginheight="0" onLoad="preloadImages()";>
  36. <?php
  37.  
  38. @mysql_connect("localhost","root","")or die("echec de connection au serveur");
  39. @mysql_select_db("votre_base")or die ("echec de connection à la base <br>");
  40.  
  41. ?>
  42. <h1 align="center"><font size="+1" > Location de voiture +covoiturage= une solution d’avenir <br />
  43. <pre> Pour Profiter Participez au covoiturage
  44. Pour Gagner du temps et créer votre compte
  45. Pour Gagner d’argents
  46.  
  47. </pre>
  48. </font></h1>
  49. <br />
  50. <form action="validationinscC.php" method="post" name="Verif" onsubmit="return VerifMail();" >
  51.  
  52. <table width="848" height="102" align="center" cellpadding="20" cellspacing="4">
  53. <tr>
  54. <tr bgcolor="#FFFFFF">
  55. <td align="center" colspan="18" valign="top">
  56. <font size="+1" color="#000000">Inscription Conducteur</font></td></tr>
  57.  
  58. <p></p><p></p> 
  59. <tr>
  60. <td width="197" bgcolor="#FFFFFF"><font class="Style8">Civilté</font></td>
  61. <td width="145" bgcolor="#FFFFFF" colspan=" 17"> <select name="civilite">
  62. <option value="monsieur"><font class="Style8">Monsieur</font> </option>
  63. <option value="madame"><font class="Style8">Madame </font></option>
  64. <option value="Mlle"><font class="Style8"> Mlle</font></option>
  65.  
  66. </select>
  67. </td>
  68. </tr>
  69. <td width="0"></td>
  70. <tr>
  71. <td bgcolor="#FFFFFF" valign="top" ><font class="Style8">   Nom</font><p></p></td>
  72. <td bgcolor="#FFFFFF" colspan="17" valign="top"><p>  <input type="text" name="nom" value="" /></p></td>
  73.  
  74. </tr>
  75. <tr>
  76. <td bgcolor="#FFFFFF" valign="top"><p><font class="Style8">   Prénom</font></p></td>
  77. <td bgcolor="#FFFFFF" colspan="17" valign="top"><p>  <input type="text" name="prenom" value="" /></p></td>
  78. </tr>
  79. <tr>
  80. <td bgcolor="#FFFFFF" valign="top" ><font class="Style8">   Adresse complète</font></td>
  81. <td bgcolor="#FFFFFF" colspan="17" valign="top">  <textarea cols="30" rows="5" name="adresse" value="" ></textarea></td>
  82. </tr>
  83. <tr>
  84. <td bgcolor="#FFFFFF" valign="top" colspan="20" > <font class="Style8">
  85. <?php require_once('liste/class/class.france.php');
  86.  
  87. $france = new france();
  88. $region = $france->getRegions();
  89.  
  90. echo '
  91. <label for="region">Région: </label>
  92. <select name="region" id="region" onchange="getDpt();">
  93. <option value="-1">Régions</option>
  94. ';
  95. for($i=0;$i<count($region);$i++) {
  96. echo '
  97. <option value="'.$region[$i]['region_id'].'">'.$region[$i]['region_name'].'</option>
  98. ';
  99. }
  100. echo '
  101. </select>
  102. ';
  103.  
  104. echo '
  105. <div id="champsDpt">
  106. <label for="dpt">Département: </label>
  107. <select name="dpt" id="dpt">
  108. <option value="-1">Choisir une région</option>
  109. </select>
  110. </div>
  111.  
  112. <div id="champsVille">
  113. <label for="ville">Ville: </label>
  114. <select name="ville" id="ville">
  115. <option value="-1">Choisir un département</option>
  116. </select>
  117. </div>
  118.  
  119. <div id="champsQuartier">
  120. <label for="quartier">Quartier: </label>
  121. <select name="quartier" id="quartier">
  122. <option value="-1">Choisir une ville</option>
  123. </select>
  124. </div>
  125. '; ?>
  126. </font></td>
  127. </tr>
  128.  
  129.  
  130. <tr><td></td>
  131. <td bgcolor="#FFFFFF" valign="top" ><font class="Style8">   E-mail(exemple : monnom@domaine.extension)</font><p></p></td>
  132. <td bgcolor="#FFFFFF" colspan="17" valign="top">  <input type="text" name="email" value="" /></td>
  133.  
  134. </tr>
  135. <tr><td></td>
  136. <td bgcolor="#FFFFFF" valign="top" ><font class="Style8">   Téléphone</font><p></p></td>
  137. <td bgcolor="#FFFFFF" colspan="17" valign="top"><p>  <input type="text" name="tel" value="" /></p></td>
  138.  
  139. </tr>
  140. <tr>
  141. <td></td>
  142. <td align="left" colspan="6">
  143. <input name="submit" type="submit" value="M'inscrire, j’ai accepté la charte" />
  144. <input name="reset" type="reset" value="Effacer" />
  145. </td></tr>
  146. </table>
  147. </form>


Merci d'avance pour me donner comment je resout mon probleme et l'enregistrement se fait

Autres pages sur : recuperation donnees formlaire

a c 232 L Programmation
8 Janvier 2011 12:16:54

Salut,

L'enregistrement se fait dans ta page validationinscC.php (le action de ton <form>)
Il faudra que tu récupères les données de ton formulaire qui sont stockées dans le tableau $_POST, exemple pour le <select name="quartier">, tu peux le récupérer par $_POST['quartier']

Ensuite, il faudra exécuter une requête mysql_query avec un INSERT afin d'insérer tes données récupérées.
m
0
l
8 Janvier 2011 12:44:59

Bonjour,
voila le fichier validationinsC.php

  1. <table width="848" height="102" align="center" cellpadding="20" cellspacing="4">
  2. <?
  3. @mysql_connect("localhost","root","")or die("echec de connection au serveur");
  4. @(mysql_select_db("particulier"))or die ("echec de connection à la base <br>");
  5. $civilite=$_POST['civilite']; echo"c :$civilite<br>";
  6. $nom=$_POST['nom'];echo"nom :$nom<br>";
  7. $prenom=$_POST['prenom']; echo"prenom: $prenom<br>";
  8. $adresse=$_POST['adresse'];
  9. $codepostal=$_POST['codepostal'];
  10. $ville=$_POST['ville'];
  11. $pays=$_POST['pays'];
  12. $email=$_POST['email'];
  13. $tel=$_POST['tel'];
  14. $region=$_POST['region'];
  15. $dpt=$_POST['dpt'];
  16. $ville=$_POST['ville'];
  17. $w="insert into conducteur values('$civilite','$nom','$prenom','$adresse','$codepostal','$pays','£region','£dpt','£ville','$email','$tel','$anneenaiss','$taille','$couleurcheveux','$couleuryeux','$mot_de_passe','$pseudo','$profession','$stylemusique','$skype','$msn','$fumez','$bavard','$loisirs','$caracteres','$defauts','$marque','$modele','$immatriculation','$couleur','$annee','$nationalite','active')";
  18. $v=mysql_db_query("particulier",$w);
  19. if($v)
  20.  
  21. {
  22. echo"Bonjour $nom $prenom<br> Merci pour votre participation et votre confiance. Votre inscription est enregistrer
  23. <br>";
  24. }
  25. mysql_close();
  26. ?>


j'ai pas pu connaitre pourquoi l'enregistrement n'est pas fait.
Merci d'avance de me donner une aide
m
0
l
Contenus similaires
8 Janvier 2011 12:48:05

les autres champs nom existant en formulaire sont fait donc le probleme n'etait pas la, tous existe et recuperer par $_post, c'est juste pour vous minimiser le nbre de champs à saisir pour pouvoir m'aider
m
0
l
8 Janvier 2011 12:50:47

les autres champs existant dans la requete insert sont tous existent en formulaire et recuperer par $_post, donc le probleme n'etait pas la, , c'est juste pour vous minimiser le nbre de champs à saisir pour pouvoir m'aider
m
0
l
8 Janvier 2011 13:46:07

priere m'aider
m
0
l
a c 232 L Programmation
8 Janvier 2011 21:43:36

Salut,

Désolé, j'ai une vie, je ne passe pas ma journée ici.
Remplace ton $v=mysql_db_query("particulier",$w); par $v=mysql_db_query("particulier",$w) or die(mysql_error());
Comme ça, tu sauras ce qui plante.
m
0
l
19 Janvier 2011 12:51:00

Bonjour,

j'ai ajouter or die(mysql_error()); comme indiquer si-dessus mais lorsque que rempli les champs du formulaire et je clique sur le bouton "s'inscrire " ce qui est affiché c'est le code du fichier validationinscC.php. donc il ne renvoie pas l'erreur gerer par mysql.
"comment résoudre ce probleme?", c'est la question que j'ai pas encore pu repondre.

Merci d'avance de me donner la solution ou l'idée pour avoir la reponse à ce question
m
0
l
a c 145 L Programmation
19 Janvier 2011 12:57:02

Sans avoir la structure de ta table, je penche pour un problème sur le nombre de champs.
Donc, soit tu réécris ta requête en explicitant tous les champs à remplir, soit tu ajoutes aussi les valeurs par défaut.

Le mieux étant la première solution, mais tu peux nous donner la structure de ta table.
m
0
l
a c 232 L Programmation
19 Janvier 2011 13:34:37

Y'a aussi la possibilité qu'une des valeurs contiennent un apostrophe (') vu qu'aucun traitement n'est fait sur les valeurs.
m
0
l
19 Janvier 2011 13:43:46

Les champs du table sont respectivement les valeurs de cette requete
$w="insert into conducteur values('$civilite','$nom','$prenom','$adresse','£region','£dpt','£ville','$email','$tel','$anneenaiss','$taille','$couleurcheveux','$couleuryeux','$mot_de_passe','$pseudo','$profession','$stylemusique','$skype','$msn','$fumez','$bavard','$loisirs','$caracteres','$defauts','$marque','$modele',
'$immatriculation','$couleur','$annee','$nationalite','active')"; avec 'active' correspond au champs etat.

Merci d'avance
m
0
l
a c 145 L Programmation
19 Janvier 2011 14:36:20

Non, ceci est la liste des valeurs, pas des champs.
Tu n'aurais pas (par exemple) un champ ID en auto-incrément ?
m
0
l
19 Janvier 2011 15:02:40

non, je n'ai pas un champ ID ou auto increment.
la table c'est conducteur(civilite,nom,prenom,adresse,region,dpt,ville,email,tel(int),anneenaiss(int),taille(float),couleurcheveux,couleuryeux,mot_de_passe,pseudo,profession,stylemusique,skype,msn,fumez,bavard,loisirs,caracteres,defauts,marque,modele,
immatriculation,couleur,annee(int),nationalite,etat) et les autres de types char.
et mysql sous xampp ne demande pas un champ de type clé primaire .
m
0
l
19 Janvier 2011 15:47:13

sachant que avant d'ajouter les chapms region,dpt et ville qui est une liste liee l'enregistrement marche bien.

Merci d'avance de me donner une idée
m
0
l
a c 145 L Programmation
19 Janvier 2011 16:02:54

Question bête sur ces trois champs: £ est une faute de frappe en recopiant ou bien tu as vraiment ça dans ton code ? une variable commence par $
m
0
l
19 Janvier 2011 16:07:06

voila ce qui est ecrit dans le fichier validationinscC.php

  1. <?
  2. @mysql_connect("localhost","root","")or die("echec de connection au serveur");
  3. @(mysql_select_db("particulier"))or die ("echec de connection à la base <br>");
  4. $civilite=$_POST['civilite']; echo"c :$civilite<br>";
  5. $nom=$_POST['nom'];echo"nom :$nom<br>";
  6. $prenom=$_POST['prenom']; echo"prenom: $prenom<br>";
  7. $adresse=$_POST['adresse'];
  8. $region=$_POST['region'];
  9. $dpt=$_POST['dpt'];
  10. $ville=$_POST['ville'];
  11. $quartier=$_POST['quartier'];
  12. $email=$_POST['email'];
  13. $tel=$_POST['tel'];
  14. $anneenaiss=$_POST['anneenaiss'];
  15. $taille=$_POST['taille'];
  16. $couleurcheveux=$_POST['couleurcheveux'];
  17. $couleuryeux=$_POST['couleuryeux'];
  18. $mot_de_passe=$_POST['mot_de_passe'];
  19. $pseudo=$_POST['pseudo'];
  20.  
  21. $profession=$_POST['profession'];
  22. $stylemusique=$_POST['stylemusique'];
  23. $skype=$_POST['skype'];
  24. $msn=$_POST['msn'];
  25. $fumez=$_POST['fumez'];
  26. $bavard=$_POST['bavard'];
  27. $loisirs=$_POST['loisirs'];
  28. $caracteres=$_POST['caracteres'];
  29. $defauts=$_POST['defauts'];echo"$defauts";
  30. $marque=$_POST['marque'];
  31. $modele=$_POST['modele'];
  32. $immatriculation=$_POST['immatriculation'];
  33. $couleur=$_POST['couleur'];
  34. $annee=$_POST['annee'];echo"$annee";
  35. $nationalite=$_POST['nationalite'];
  36.  
  37. $k=0;
  38. if(($civilite=="")or($nom=="")or($prenom=="")or($adresse=="")or($codepostal=="")or($ville=="")or($pays=="")or($email=="")or($tel=="")or($anneenaiss=="")or($taille=="")or($couleurcheveux=="")or($couleuryeux=="")or($mot_de_passe=="")or($pseudo=="")or($profession=="")or($stylemusique=="")or($skype=="")or($msn=="")or($fumez=="")or($bavard=="")or($loisirs=="")or($caracteres=="")or($defauts=="")or($marque=="")or($modele=="")or($immatriculation=="")or($couleur=="")or($annee==""))
  39. { echo"Vous avez un ou plusieurs champs non remplis<br>";
  40. ?>
  41. </h1>
  42.  
  43. <?
  44. }
  45. else
  46. {
  47. $req="select * from conducteur";
  48. $r=mysql_db_query("particulier",$req);
  49.  
  50. if($r)
  51. {
  52. $k=0;
  53. while($res=mysql_fetch_row($r))
  54. if($res[10]==$mot_de_passe)
  55. $k++;
  56. }
  57. else
  58. echo"req1 non envoyer<br />";
  59. if($k!=0)
  60. {
  61. echo"Vérifier les champs saisies<br />";
  62. ?>
  63. <a href="InscriptionC.html" >Retour</a>
  64. <?
  65. }
  66. ?>
  67. </font>
  68. <tr bgcolor="#FFFFFF">
  69. <td></td><td>
  70. <font class="Style8">
  71. <?
  72. if($k==0)
  73. {
  74.  
  75. $w="insert into conducteur values('$civilite','$nom','$prenom','$adresse','$region','$dpt','$ville','$email','$tel','$anneenaiss','$taille','$couleurcheveux','$couleuryeux','$mot_de_passe','$pseudo','$profession','$stylemusique','$skype','$msn','$fumez','$bavard','$loisirs','$caracteres','$defauts','$marque','$modele',
  76. '$immatriculation','$couleur','$annee','$nationalite','active')";
  77. $v=mysql_db_query("particulier",$w) or die(mysql_error());
  78. if($v)
  79.  
  80. {
  81. echo"Bonjour $nom $prenom<br> Merci pour votre participation et votre confiance. Votre inscription est enregistrer
  82. <br>";
  83. $message="Bonjour $civilite $nom <br>
  84.  
  85. Merci pour votre participation et votre confiance. Votre inscription est validée et vous pouvez accéder à votre espace avec les informations suivantes :<br>
  86. <b>Login :</b> $pseudo <br>
  87. <b>Mot de passe :</b> $mot_de_passe <br>
  88. Un lien redirige l’utilisateur vers le site covoiturage pour pouvoir s’authentifier <br>
  89. <br>
  90. Cordialement <br>
  91. Equipe Baladi";
  92. mail($email, "message automatique", $message);
  93.  
  94.  
  95. ?>
  96. <a href="connexion.html" >Vous pouvez ce connecter</a>
  97. <?
  98. }
  99. }
  100. }
  101. mysql_close();
  102. ?>
m
0
l
19 Janvier 2011 16:09:02

oui, j'ai corrigé l'erreur que vous l'avez mentionner
m
0
l
19 Janvier 2011 16:20:55

et le pb n'est pas encore résolu
m
0
l
a c 145 L Programmation
19 Janvier 2011 16:39:34

Premier point: tu peux éditer tes messages plutôt que d'en poster 3 à la suite.
Second point: as tu essayé de faire un echo $w; et de faire passer la requête dans phpMyAdmin pour voir quelle erreur il peut y avoir ?
m
0
l
19 Janvier 2011 17:22:07

Je vais essayer de faire unecho de $w, et de faire la passer la requete dans phpMyAdmin, mais j'ai pas bien compris
Premier point: tu peux éditer tes messages plutôt que d'en poster 3 à la suite.

aussi, j'ai fait unexemple qui est ecris dans le cod: echo"nom :$nom<br>";
mais j'ai pas reçu la valeur du champs nom; il est affiche de cette façon echo"nom :$nom<br>";
c'est tpresque tout le code tel qu'il est est affiché dans le resultat
et je vais faire Second point pour voir s'il j'aurais une erreur



m
0
l
19 Janvier 2011 18:57:59

J'ai essayer avec cet exemple dans phpMyAdmin
insert into conducteur values('civ','nom','prenom','adresse','region','dpt','ville','email',2122,2100,1.5,'eveux','uryeux','mot_d','pseudo','prof','stylue','skype','msn','fum','bavard','loisirs','caracteres','defauts','marque','modele',
222,'couleur',2322,'natio','active');
et voila l'erreur
#1136 - Column count doesn't match value count at row 1
m
0
l
19 Janvier 2011 18:59:12

j'espere avoir pourquoi n'a pas marché cet erreur

Merci d'avance
m
0
l
19 Janvier 2011 19:13:42

Avec phpMyAdmin ça marche car j'ai fait des modification dans les champs et j'ai les oubli en base de donnée.
mais à partir du formulaire n'a pas marché c le meme probleme le code ecris est affiché.
m
0
l
a c 145 L Programmation
19 Janvier 2011 20:44:06

Et bien quelle surprise, il n'y a pas le bon nombre de colonnes.
Donc, comme tu n'as pas l'air bien doué(e), fais une capture d'écran de la structure de ta table et on arrivera peut-être à trouver ce qui ne va pas.
m
0
l
20 Janvier 2011 13:45:34

Bonjour,

Je veux vous dire que le probleme du nombre des champs est résolu car l'enregistrement dans la table se fait lorsque je teste la requete dans phpMyAdmin.

mais le probleme que l'enregistrement ne se fait pas à partir du formulaire c'est à dire du page web où il y a le formulaire. et le resultat toujours l'affichage du code ecrit dans le fichier validationinscC.php. je souhaite avoir la sulution.

vous ma demander la structure de la table, voila

Champ Type Interclassement Attributs Null Défaut Extra Action
table(civilite varchar(15) , nom varchar(20), prenom varchar(20), adresse varchar(50), region varchar(20), dpt varchar(25), ville varchar(25), email varchar(25), tel int(11), anneenaiss int(11), taille float, couleurcheveux varchar(20), couleuryeux varchar(20), mot_de_passe varchar(20), pseudo varchar(15), profession varchar(20), stylemusique varchar(15), skype varchar(20),
msn varchar(20) , fumez varchar(20) , bavard varchar(20) , loisirs varchar(20) , caracteres varchar(200) , defauts varchar(200) , marque varchar(20) , modele varchar(20) , immatriculation int(11) ,
couleur varchar(20) , annee int(11), nationalite varchar(20), etat varchar(15)) .

le probleme de nombre de champs est résolu car la requete du test que j'ai donnée avant marche sous phpMyAdmin. Et mon probleme d'enregistrement à partir du travai(page web) n'est pas résolu.

Merci d'avance de me donner l'aide
m
0
l
a c 232 L Programmation
20 Janvier 2011 17:40:37

Je me souviens plus si MySQL est indulgent avec ça, mais y'a peut être le fait d'entrer des strings dans des int
Crazycat va surement confirmer/infirmer ça.
m
0
l
a c 145 L Programmation
20 Janvier 2011 21:20:56

Ah oui, MySQL n'aime pas. phpMyAdmin a la facheuse tendance de caster les entrées pour les faire correspondre à ce qu'il attend, ce qui n'est pas le cas d'une simple requête.

D'ailleurs (mode professoral) il vaut mieux toujours tester une requête en console MySQL qui est plus strict(/mode)
m
0
l
21 Janvier 2011 10:29:57

Il y avait comparaison entre variable de type int et autre de type char et j'ai corriger ça.
J'ai essayer maintenant de d'afficher les valeurs saisie en formulaire en eliminant l'insertion; j'ai recuperer les valeurs avec $_POST et afficher avec echo, la resultat c"etait de reafficher le code$variable=$_POST['variable']; echo"$variable";
c'etait ça le resultat.
quel est ce probleme est comment je peu le resoudre?

Merci d'avance de me repondre
m
0
l
21 Janvier 2011 12:14:45

J'ai eliminer l'insertion et j'ai laisser seulement les recuperations des variables et affichage de quelques donnees pour le moment c'est le vide qui affiché.

J'ai eliminer meme tout le code et j'ai le remplacer par echo""bonjour"; mais voila il n'est pas affiché c'est seulement le vide dans la page.

Quel est la solution
m
0
l
22 Janvier 2011 22:01:46

J'ai essayer d'afficher les valeurs saisie en formulaire en eliminant l'insertion; j'ai recuperer les valeurs avec $_POST et afficher avec echo"$variable";

la resultat c'etait rien n'est affiché lorsque je clique sur le bouton s'inscrire.

j'espere avoir une aide.

Merci d'avance
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS