Formulaire en php

Formulaire en php - PHP - Programmation

Marsh Posté le 28-05-2015 à 11:07:22    

Bonjour,
 
J'ai un petit soucis dans ma requete SQL, j'essaie de faire un formulaire d'ajout de CV dans ma base de donnée puis qui s'affiche dans un tableau.
 
Actuellement j'ai réussis le tableau qui affiche les éléments dans la base de donnée :
http://nsa37.casimages.com/img/2015/05/28/mini_150528110008970367.jpg
 
Mais pour l'ajout de CV il me dise qu'il y a une erreur dans la requête voici le code :  

Code :
  1. <div id="contenu">
  2.     <h2>Gestion des négociants</h2>
  3.     <a href="index.php?page=1.php" title="Gestion des négociants">
  4.         Gestion des négociants
  5.     </a>
  6.     <br /><br />
  7.     <?php
  8.       // connexion à  la base
  9.         $cnx = connectDB();
  10.         // initialisation des variables
  11.         $strCV = '';
  12.         $strNom = '';
  13.         $strPrenom = '';
  14.         $intMobile = '';
  15.         $strAdresse = '';
  16.         $strVille = '';
  17.         $strEtude = '';
  18.         $strExperience ='';
  19.         $strAge = '';
  20.         $strDisponible = '';
  21.         $strDepot = '';
  22.         $strPermis ='';
  23.        
  24.         // variables pour la gestion des erreurs
  25.         $tabErreurs = array();
  26.         $hasErrors = false;
  27.         $ajoutOK = false;
  28.         // tests de gestion du formulaire
  29.         if (isset($_POST["cmdFonction"]))
  30.         {
  31.             // test zones obligatoires
  32.             if (!empty($_POST["txtCV"]) and
  33.                 !empty($_POST["txtNom"]) and
  34.                 !empty($_POST["txtPrenom"]) and
  35.                 !empty($_POST["txtMobile"]) and
  36.                 !empty($_POST["txtAdresse"]) and
  37.                 !empty($_POST["txtVille"]) and
  38.                 !empty($_POST["txtEtude"]) and
  39.                 !empty($_POST["txtExperience"]) and
  40.                 !empty($_POST["txtAge"]) and
  41.                 !empty($_POST["txtDisponible"]) and
  42.                 !empty($_POST["txtDepot"]) and
  43.                 !empty($_POST["txtPermis"]))
  44.             {
  45.                 // récupération des valeurs saisies
  46.                 $strCV = htmlentities($_POST["txtCV"]);
  47.                 $strNom =  htmlentities($_POST["txtNom"]);
  48.                 $strPrenom =  htmlentities($_POST["txtPrenom"]);
  49.                 $strMobile = htmlentities($_POST["txtMobile"]);
  50.                 $strAdresse = htmlentities($_POST["txtAdresse"]);
  51.                 $strVille = htmlentities($_POST["txtVille"]);
  52.                 $strEtude = htmlentities($_POST["txtEtude"]);
  53.                 $strExperience = htmlentities($_POST["txtExperience"]);
  54.                 $strAge = htmlentities($_POST["txtAge"]);
  55.                 $strDisponible = htmlentities($_POST["txtDisponible"]);
  56.                 $strDepot = htmlentities($_POST["txtDepot"]);
  57.                 $strPermis = htmlentities($_POST["txtPermis"]);
  58.                 $ajoutOK = true;
  59.             }
  60.             else
  61.             { 
  62.                 $hasErrors = true;
  63.                 if (empty($_POST["txtCV"]))
  64.                 {
  65.                     $tabErreurs["txtCV"] =
  66.                             "Le numéro CV doit être renseignée !";
  67.                 }
  68.                 if (empty($_POST["txtNom"]))
  69.                 {
  70.                     $tabErreurs["txtNom"] =
  71.                             "Le Nom doit être renseignée !";
  72.                 }
  73.                 if (empty($_POST["txtPrenom"]))
  74.                 {
  75.                     $tabErreurs["txtPrenom"] =
  76.                             "Le prenom doit être renseigné !";
  77.                 }
  78.                 if (empty($_POST["txtMobile"]))
  79.                 {
  80.                     $tabErreurs["txtMobile"] =
  81.                             "Le mobile doit être renseignée !";
  82.                 }
  83.                 if (empty($_POST["txtAdresse"]))
  84.                 {
  85.                     $tabErreurs["txtAdresse"] =
  86.                             "L'adresse doit être renseignée !";
  87.                 }
  88.                 if (empty($_POST["txtVille"]))
  89.                 {
  90.                     $tabErreurs["txtVille"] =
  91.                             "La ville doit être renseignée !";
  92.                 }
  93.                 if (empty($_POST["txtEtude"]))
  94.                 {
  95.                     $tabErreurs["txtEtude"] =
  96.                             "Les études doivent être renseignée !";
  97.                 }
  98.                 if (empty($_POST["txtExperience"]))
  99.                 {
  100.                     $tabErreurs["txtExperience"] =
  101.                             "L'experience doit être renseignée !";
  102.                 }
  103.                 if (empty($_POST["txtAge"]))
  104.                 {
  105.                     $tabErreurs["txtAge"] =
  106.                             "L'âge doit être renseignée !";
  107.                 }
  108.                 if (empty($_POST["txtDisponible"]))
  109.                 {
  110.                     $tabErreurs["txtDisponible"] =
  111.                             "La date de disponibilité doit être renseignée !";
  112.                 }
  113.                 if (empty($_POST["txtDepot"]))
  114.                 {
  115.                     $tabErreurs["txtDepot"] =
  116.                             "La date du dépot du cv doit être renseignée !";
  117.                 }
  118.                 if (empty($_POST["txtPermis"]))
  119.                 {
  120.                     $tabErreurs["txtPermis"] =
  121.                             "Titulaire du permis doit être renseignée !";
  122.                 }
  123.             }
  124.         }
  125.         // affichage des erreurs
  126.         if($hasErrors)
  127.         {
  128.             foreach ($tabErreurs as $erreur)
  129.             {
  130.                 echo '<span class="erreur">' . $erreur . '</span>';
  131.             }
  132.         }
  133.         // affichage du formulaire
  134.         if (!$ajoutOK)
  135.         {
  136.             ?>
  137.             <form action="index.php?page=31" method="post">
  138.                 <div class="corpsForm">
  139.                     <fieldset>
  140.                         <legend>Ajouter un négociant</legend>
  141.                         <table>
  142.                             <tr>
  143.                                 <td>
  144.                                     <label for="txtCV">
  145.                                         Num CV
  146.                                     </label>
  147.                                 </td>
  148.                                 <td>
  149.                                     <input type="text" id="txtCV"
  150.                                         name="txtCV"
  151.                                         size="50" maxlength="50"
  152.                                         value=""
  153.                                     />
  154.                                 </td>
  155.                             </tr>
  156.                             <tr>
  157.                                 <td>
  158.                                     <label for="txtNom">
  159.                                         Nom
  160.                                     </label>
  161.                                 </td>
  162.                                 <td>
  163.                                     <input type="text" id="txtNom"
  164.                                         name="txtNom"
  165.                                         size="50" maxlength="50"
  166.                                         value=""
  167.                                     />
  168.                                 </td>
  169.                             </tr>
  170.                             <tr>
  171.                                 <td>
  172.                                     <label for="txtPrenom">
  173.                                         Prenom
  174.                                     </label>
  175.                                 </td>
  176.                                 <td>
  177.                                     <input type="text" id="txtPrenom"
  178.                                         name="txtPrenom"
  179.                                         size="50" maxlength="50"
  180.                                         value=""
  181.                                     />
  182.                                 </td>
  183.                             </tr>
  184.                             <tr>
  185.                                 <td>
  186.                                     <label for="txtMobile">
  187.                                         Mobile
  188.                                     </label>
  189.                                 </td>
  190.                                 <td>
  191.                                     <input type="text" id="txtMobile"
  192.                                         name="txtMobile"
  193.                                         size="50" maxlength="50"
  194.                                         value=""
  195.                                     />
  196.                                 </td>
  197.                             </tr>
  198.                             <tr>
  199.                                 <td valign="top">
  200.                                     <label for="txtAdresse">
  201.                                         Adresse
  202.                                     </label>
  203.                                 </td>
  204.                                 <td>
  205.                                     <textarea id="txtAdresse"
  206.                                         name="txtAdresse"
  207.                                         rows="5" cols="80"></textarea>
  208.                                 </td>
  209.                             </tr>
  210.                             <tr>
  211.                                 <td>
  212.                                     <label for="txtVille">
  213.                                         Ville
  214.                                     </label>
  215.                                 </td>
  216.                                 <td>
  217.                                     <input type="text" id="txtVille"
  218.                                         name="txtVille"
  219.                                         size="50" maxlength="50"
  220.                                         value=""
  221.                                     />
  222.                                 </td>
  223.                             </tr>
  224.                             <tr>
  225.                                 <td>
  226.                                     <label for="txtEtude">
  227.                                         Etude
  228.                                     </label>
  229.                                 </td>
  230.                                 <td>
  231.                                     <input type="text" id="txtEtude"
  232.                                         name="txtEtude"
  233.                                         size="50" maxlength="50"
  234.                                         value=""
  235.                                     />
  236.                                 </td>
  237.                             </tr>
  238.                             <tr>
  239.                                 <td>
  240.                                     <label for="txtExperience">
  241.                                         Experience
  242.                                     </label>
  243.                                 </td>
  244.                                 <td>
  245.                                     <input type="text" id="txtExperience"
  246.                                         name="txtExperience"
  247.                                         size="50" maxlength="50"
  248.                                         value=""
  249.                                     />
  250.                                 </td>
  251.                             </tr>
  252.                             <tr>
  253.                                 <td>
  254.                                     <label for="txtAge">
  255.                                         Age
  256.                                     </label>
  257.                                 </td>
  258.                                 <td>
  259.                                     <input type="text" id="txtAge"
  260.                                         name="txtAge"
  261.                                         size="50" maxlength="50"
  262.                                         value=""
  263.                                     />
  264.                                 </td>
  265.                             </tr>
  266.                             <tr>
  267.                                 <td>
  268.                                     <label for="txtDisponible">
  269.                                         Disponible a partir du
  270.                                     </label>
  271.                                 </td>
  272.                                 <td>
  273.                                     <input type="text" id="txtDisponible"
  274.                                         name="txtDisponible"
  275.                                         size="50" maxlength="50"
  276.                                         value=""
  277.                                     />
  278.                                 </td>
  279.                             </tr>
  280.                             <tr>
  281.                                 <td>
  282.                                     <label for="txtDepot">
  283.                                         Depot
  284.                                     </label>
  285.                                 </td>
  286.                                 <td>
  287.                                     <input type="text" id="txtDepot"
  288.                                         name="txtDepot"
  289.                                         size="50" maxlength="50"
  290.                                         value=""
  291.                                     />
  292.                                 </td>
  293.                             </tr>
  294.                             <tr>
  295.                                 <td>
  296.                                     <label for="txtNom">
  297.                                         Permis
  298.                                     </label>
  299.                                 </td>
  300.                                 <td>
  301.                                     <input type="text" id="txtPermis"
  302.                                         name="txtPermis"
  303.                                         size="50" maxlength="50"
  304.                                         value=""
  305.                                     />
  306.                                 </td>
  307.                             </tr>
  308.                         </table>
  309.                     </fieldset>
  310.                 </div>
  311.                 <div class="piedForm">
  312.                     <p>
  313.                         <input id="cmdFonction" name="cmdFonction"
  314.                                type="submit"
  315.                                value="Ajouter" size="15"
  316.                         />
  317.                     </p>
  318.                 </div>
  319.             </form>
  320.         <?php
  321.         }
  322.         else
  323.         {
  324.             // connexion à  la base de données
  325.             $cnx = connectDB();
  326.             // ajout dans la base de données
  327.             $strSQL = "INSERT INTO `apef_services`.`gestion_des_cv` (`CV`, `Nom`, `Prenom`, `Mobile`, `Adresse`, `Ville`, `Etude`,"
  328.                     . " `Experience`, `Age`, `Disponible`, `Depot_du_CV`, `Permis`) VALUES ('"
  329.                     . $strCV ."',"
  330.         . $strNom ."',"
  331.         . $strPrenom ."',"
  332.         . $intMobile ."',"
  333.         . $strAdresse ."',"
  334.         . $strVille ."',"
  335.         . $strEtude ."',"
  336.         . $strExperience ."',"
  337.         . $strAge ."',"
  338.         . $strDisponible ."',"
  339.         . $strDepot ."',"
  340.         . $strPermis ."',"
  341.                     ." )";
  342.            
  343.            
  344.             }
  345.              if (execSQL($strSQL))
  346.             {
  347.                 echo 'Le négociant a été ajouté';
  348.             }
  349.             disconnectDB($cnx);
  350.        
  351.     ?>
  352. </div>


 
Et voici la base de donnée :
http://nsa37.casimages.com/img/2015/05/28/mini_150528110124446519.jpg
 
Je ne trouves vraiment pas mon erreur j'aurais besoin d'une petite aide.  
Merci a vous !

Reply

Marsh Posté le 28-05-2015 à 11:07:22   

Reply

Marsh Posté le 28-05-2015 à 16:06:35    

Salut,
As-tu affiché ta requête avant de l'exécuter ? j'ai l'impression qu'il doit y avoir un pb d'apostrophes dedans :??:


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 29-05-2015 à 22:50:16    

Bonjour !
je pense qu'il faut enlever la virgule après $strpermis ligne 340 :)
dis nous si ca change quelque chose

Reply

Marsh Posté le 31-05-2015 à 12:57:55    

Bonjour,
 
Non sa ne change rien ^^

Reply

Marsh Posté le 31-05-2015 à 20:52:54    

Comme demandé, rajoute un echo $strSQL; et poste le résultat. Visiblement il manque un paquet d'apostrophes

Reply

Marsh Posté le 01-06-2015 à 00:00:33    

Il manque un apostrophe après chaque virgule dans ta liste de variable :
$strNom ."',"
doit etre  
$strNom ."','"

Reply

Marsh Posté le 01-06-2015 à 10:05:11    

Bonjour,
 
J'ai totalement changé la façon de faire et cela marche j'aurais quelque question, comment faire pour que le numéro CV se mette automatiquement c'est a dire 1,puis 2, 3 ect ... Et dans le formulaire HTML mettre a cocher oui ou non et que cela  
 
Voici le nouveau code
 

Code :
  1. <div id="contenu">
  2.     <h2>Gestion des négociants</h2>
  3.     <a href="index.php?page=1.php" title="Gestion des négociants">
  4.         Gestion des négociants
  5.     </a>
  6.     <br /><br />
  7.    
  8.  
  9.         <form action="index.php?page=31" method="post">
  10.                 <div class="corpsForm">
  11.                     <fieldset>
  12.                         <legend>Ajouter un négociant</legend>
  13.                         <table>
  14.                             <tr>
  15.                                 <td>
  16.                                     <label for="txtCV">
  17.                                         Num CV
  18.                                     </label>
  19.                                 </td>
  20.                                 <td>
  21.                                     <input type="text" id="txtCV"
  22.                                         name="txtCV"
  23.                                         size="50" maxlength="50"
  24.                                         value=""
  25.                                     />
  26.                                 </td>
  27.                             </tr>
  28.                             <tr>
  29.                                 <td>
  30.                                     <label for="txtNom">
  31.                                         Nom
  32.                                     </label>
  33.                                 </td>
  34.                                 <td>
  35.                                     <input type="text" id="txtNom"
  36.                                         name="txtNom"
  37.                                         size="50" maxlength="50"
  38.                                         value=""
  39.                                     />
  40.                                 </td>
  41.                             </tr>
  42.                             <tr>
  43.                                 <td>
  44.                                     <label for="txtPrenom">
  45.                                         Prenom
  46.                                     </label>
  47.                                 </td>
  48.                                 <td>
  49.                                     <input type="text" id="txtPrenom"
  50.                                         name="txtPrenom"
  51.                                         size="50" maxlength="50"
  52.                                         value=""
  53.                                     />
  54.                                 </td>
  55.                             </tr>
  56.                             <tr>
  57.                                 <td>
  58.                                     <label for="txtMobile">
  59.                                         Mobile
  60.                                     </label>
  61.                                 </td>
  62.                                 <td>
  63.                                     <input type="text" id="txtMobile"
  64.                                         name="txtMobile"
  65.                                         size="50" maxlength="50"
  66.                                         value=""
  67.                                     />
  68.                                 </td>
  69.                             </tr>
  70.                             <tr>
  71.                                 <td valign="top">
  72.                                     <label for="txtAdresse">
  73.                                         Adresse
  74.                                     </label>
  75.                                 </td>
  76.                                 <td>
  77.                                     <textarea id="txtAdresse"
  78.                                         name="txtAdresse"
  79.                                         rows="5" cols="80"></textarea>
  80.                                 </td>
  81.                             </tr>
  82.                             <tr>
  83.                                 <td>
  84.                                     <label for="txtVille">
  85.                                         Ville
  86.                                     </label>
  87.                                 </td>
  88.                                 <td>
  89.                                     <input type="text" id="txtVille"
  90.                                         name="txtVille"
  91.                                         size="50" maxlength="50"
  92.                                         value=""
  93.                                     />
  94.                                 </td>
  95.                             </tr>
  96.                             <tr>
  97.                                 <td>
  98.                                     <label for="txtEtude">
  99.                                         Etude
  100.                                     </label>
  101.                                 </td>
  102.                                 <td>
  103.                                     <input type="text" id="txtEtude"
  104.                                         name="txtEtude"
  105.                                         size="50" maxlength="50"
  106.                                         value=""
  107.                                     />
  108.                                 </td>
  109.                             </tr>
  110.                             <tr>
  111.                                 <td>
  112.                                     <label for="txtExperience">
  113.                                         Experience
  114.                                     </label>
  115.                                 </td>
  116.                                 <td>
  117.                                     <input type="text" id="txtExperience"
  118.                                         name="txtExperience"
  119.                                         size="50" maxlength="50"
  120.                                         value=""
  121.                                     />
  122.                                 </td>
  123.                             </tr>
  124.                             <tr>
  125.                                 <td>
  126.                                     <label for="txtAge">
  127.                                         Age
  128.                                     </label>
  129.                                 </td>
  130.                                 <td>
  131.                                     <input type="text" id="txtAge"
  132.                                         name="txtAge"
  133.                                         size="50" maxlength="50"
  134.                                         value=""
  135.                                     />
  136.                                 </td>
  137.                             </tr>
  138.                             <tr>
  139.                                 <td>
  140.                                     <label for="txtDisponible">
  141.                                         Disponible a partir du
  142.                                     </label>
  143.                                 </td>
  144.                                 <td>
  145.                                     <input type="text" id="txtDisponible"
  146.                                         name="txtDisponible"
  147.                                         size="50" maxlength="50"
  148.                                         value=""
  149.                                     />
  150.                                 </td>
  151.                             </tr>
  152.                             <tr>
  153.                                 <td>
  154.                                     <label for="txtDepot">
  155.                                         Depot
  156.                                     </label>
  157.                                 </td>
  158.                                 <td>
  159.                                     <input type="text" id="txtDepot"
  160.                                         name="txtDepot"
  161.                                         size="50" maxlength="50"
  162.                                         value=""
  163.                                     />
  164.                                 </td>
  165.                             </tr>
  166.                             <tr>
  167.                                 <td>
  168.                                     <label for="txtNom">
  169.                                         Permis
  170.                                     </label>
  171.                                 </td>
  172.                                 <td>
  173.                                     <input type="text" id="txtPermis"
  174.                                         name="txtPermis"
  175.                                         size="50" maxlength="50"
  176.                                         value=""
  177.                                     />
  178.                                 </td>
  179.                             </tr>
  180.                         </table>
  181.                     </fieldset>
  182.                 </div>
  183.                 <div class="piedForm">
  184.                     <p>
  185.                         <input id="cmdFonction" name="cmdFonction"
  186.                                type="submit"
  187.                                value="Ajouter" size="15"
  188.                         />
  189.                     </p>
  190.                 </div>
  191.             </form>
  192.   <?php
  193.       // connexion à la base
  194.         $cnx = connectDB();
  195.   //récupération des valeurs des champs:
  196.   //CV:
  197.   $CV     = $_POST["txtCV"] ;
  198.   //Nom:
  199.   $nom = $_POST["txtNom"] ;
  200.   //adresse:
  201.   $Prenom= $_POST["txtPrenom"] ;
  202.   //code postal:
  203.   $Mobile       = $_POST["txtMobile"] ;
  204.   //numéro de téléphone:
  205.   $Adresse       = $_POST["txtAdresse"] ;
  206.   //Ville
  207.   $Ville      = $_POST["txtVille"] ;
  208.   //Etude
  209.   $Etude      = $_POST["txtEtude"] ;
  210.   //Experience
  211.   $Experience      = $_POST["txtExperience"] ;
  212.   //Age
  213.   $Age       = $_POST["txtAge"] ;
  214.   //Disponible
  215.   $Disponible       = $_POST["txtDisponible"] ;
  216.   //Depot
  217.   $Depot       = $_POST["txtDepot"] ;
  218.   //Permis
  219.   $Permis      = $_POST["txtPermis"] ;
  220.   //création de la requête SQL:
  221.   $sql = "INSERT  INTO gestion_des_cv (CV, Nom, Prenom, Mobile, Adresse, Ville, Etude, Experience, Age, Disponible, Depot_du_cv, Permis)
  222.             VALUES ( '$CV', '$nom', '$Prenom', '$Mobile', '$Adresse', '$Ville', '$Etude', '$Experience', '$Age', '$Disponible', '$Depot', '$Permis') " ;
  223.   //exécution de la requête SQL:
  224.   $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
  225.   //affichage des résultats, pour savoir si l'insertion a marchée:
  226.   if($requete)
  227.   {
  228.     echo("L'insertion a été correctement effectuée" ) ;
  229.   }
  230.   else
  231.   {
  232.     echo("L'insertion à échouée" ) ;
  233.   }
  234. ?>

Reply

Marsh Posté le 03-06-2015 à 15:05:01    

Salut,
ta requête présente de potentiels risques, d'injection de texte notamment. Tu devrais utiliser PDO, une requête préparée et non le vieux mysql_query (à moins que tu ne tournes encore en php3 :D )
 
enfin, pour le numéro, ça peut se gérer directement par MySQL : un champ ID, entier numérique, avec la propriété "auto_increment".


Message édité par NewsletTux le 03-06-2015 à 15:05:32

---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Sujets relatifs:

Leave a Replay

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