Votre question
Fermé

Formulaire PHP avec test champs vides

Tags :
  • Php
  • Programmation
25 Mai 2011 14:17:56

Bonjour à tous,

alors je vous explique mon problème, j'avais réalisé un formulaire PHP qui testait les champs vides, ce formulaire était composé de deux scripts (un pour le formulaire et le "fichier action") ça marchait très bien sauf que s'il y avait un champ vide le fichier action indiquait l'erreur ainsi qu'un lien pour revenir au formulaire mais l'utilisateur perdait alors ce qu'il avait déjà tapé.
On m'a parlé de session PHP mais j'ai pas trop réussi à mettre en place le truc, j'ai donc décidé de réaliser ce formulaire avec un seul fichier mais j'ai l'erreur suivante :

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\test_ajout.php:1) in C:\xampp\htdocs\test_ajout.php on line 50

Voilà ci-dessous mon code en entier :
  1. <?php
  2. // Paramètres pour accéder à ta base MysQl
  3. $host = "localhost";
  4. $user = "root";
  5. $password = "";
  6. $bdd = "application";
  7.  
  8. // Connection à la Base MySql
  9. mysql_connect($host, $user, $password) or die ("impossible de se connecter au serveur" );
  10. mysql_select_db($bdd) or die ("impossible de se connecter a la base de donnees" );
  11.  
  12. // Déclaration des champs (vides ou récupération des $_POST)...
  13.  
  14. $title = (isset($_POST['title'])) ? htmlspecialchars($_POST['title']) : '';
  15. $logiciel = (isset($_POST['prenom'])) ? htmlspecialchars($_POST['logiciel']) : '';
  16. $version = (isset($_POST['version'])) ? htmlspecialchars($_POST['version']) : '';
  17. $link = (isset($_POST['link'])) ? htmlspecialchars($_POST['link']) : '';
  18. $logiciel = (isset($_POST['description'])) ? htmlspecialchars($_POST['description']) : '';
  19.  
  20. // Si le formulaire a été envoyé, on teste les champs...
  21.  
  22. $erreur = false;
  23.  
  24. if (!empty($_POST)) {
  25.  
  26. // vérification dans l'ordre inverse pour que le dernier soit le premier smile
  27.  
  28. if (empty($title)) {
  29.  
  30. $erreur = true;
  31.  
  32. $errmsg = 'Merci de saisir le titre !';
  33.  
  34. }
  35.  
  36. if (empty($logiciel)) {
  37.  
  38. $erreur = true;
  39.  
  40. $errmsg = 'Merci de saisir le logiciel/matériel !';
  41.  
  42. }
  43.  
  44. // Si tout est OK on exécute l'action (INSERT dans la base, envoi d'email, etc...)
  45.  
  46. if (!$erreur) {
  47.  
  48. mysql_query("INSERT INTO infolog (title,logiciel,version,link,description) VALUES('$title','$logiciel','$version','$link','$description')");
  49.  
  50. header("Location: ajout_info.php");
  51.  
  52. exit;
  53.  
  54. }
  55.  
  56. }
  57. ?>
  58.  
  59. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" rel="nofollow" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
  60. <html xmlns="<a href="http://www.w3.org/1999/xhtml" rel="nofollow" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr">
  61. <head>
  62. <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
  63. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  64. <title>Ajouter nouvelle info</title>
  65. <link href="CSS/style.css" rel="stylesheet" type="text/css" media="screen" />
  66. <style type="text/css">
  67.  
  68. .alert {
  69.  
  70. color:#990000;
  71.  
  72. }
  73.  
  74. </style>
  75. </head>
  76.  
  77. <BODY background="metal.jpg" style="background-repeat:no-repeat; background-attachment:fixed">
  78. <?php
  79.  
  80. if ($erreur) {
  81. echo '<p class="alert">'.$errmsg.'</p>';
  82. }
  83.  
  84. ?>
  85. <br>
  86. <ul id="menu_dynamique">
  87.  
  88. <li class="extend">Informations<ul>
  89. <li><a href="traitement.php">Infos Logiciels</a></li>
  90. <li class="sans"><a href="traitementmat.php">Infos Matériels</a></li>
  91. <li><a href="traitementcontrat.php">Infos Contrats</a></li>
  92. </ul>
  93. </li>
  94.  
  95. <li class="extend none"><a href="<a href="http://192.168.66.110/ouapi1.0" rel="nofollow" target="_blank">http://192.168.66.110/ouapi1.0</a>">Gérer le parc Informatique</a></li>
  96.  
  97. <li class="extend">Gestion des infos<ul>
  98.  
  99. <li><a href="nouvelle_info.html">Ajouter une info</a></li>
  100. <li class="sans"><a href="modifinfo.php">Modifier/Supprimer info</a></li>
  101. <li><a href="removerss.php">Supprimer document</a></li>
  102. </ul>
  103.  
  104. </li>
  105.  
  106. <li class="extend none">Gestion des flux RSS
  107.  
  108. <ul>
  109.  
  110. <li><a href="actu_flux.php">Actualiser les flux</a></li>
  111. <li class="sans"><a href="nouv_flux.html">Ajouter un flux</a></li>
  112. <li><a href="removeflux.php">Supprimer un flux</a></li>
  113.  
  114. </ul>
  115.  
  116. </li>
  117.  
  118. <li class="extend"><a href="<a href="http://www.groupe-ocealis.com/ocealis-securite.html" rel="nofollow" target="_blank">http://www.groupe-ocealis.com/ocealis-securite.html</a>" title="Lien vers le site d'Ocealis Sécurité">Ocealis Sécurité</a></li>
  119.  
  120. </ul>
  121. <br><br><br><br>
  122. <table align="center" width="800" height="390" border="0" cellpadding="0" cellspacing="0">
  123. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  124. <tr>
  125. <!--<td width="6%"> </td>-->
  126. <td colspan="5"><P ALIGN='center'><FONT SIZE=5 COLOR='#377693'><span style="font-variant: small-caps;"><B>Ajouter une nouvelle Information</B></SPAN></FONT><BR><BR><BR></P></td>
  127. </tr>
  128.  
  129. <tr>
  130. <td><div><font size=4 COLOR='#377693'><span style="font-variant: small-caps;"><B><label for="title">Titre *</label></B></SPAN></font></div></td>
  131. </tr>
  132. <tr>
  133. <td colspan="35"><input type="text" name="title" id="title" size="76" maxlength="500" value="<?php echo stripslashes($title); ?>" /></td>
  134. </tr>
  135.  
  136. <tr>
  137. <td><div><font size=4 COLOR='#377693'><span style="font-variant: small-caps;"><B><label for="logiciel">Logiciel / Matériel *</label></B></SPAN></font></div></td></tr>
  138. <tr>
  139. <td colspan="5"><input type="text" name="logiciel" id="logiciel" size="50" maxlength="50" value="<?php echo stripslashes($logiciel); ?>" /></td>
  140. </tr>
  141.  
  142. <tr>
  143. <td><div><font size=4 COLOR='#377693'><span style="font-variant: small-caps;"><B><label for="version">Version</label></B></SPAN></font></div></td>
  144. </tr>
  145. <tr>
  146. <td colspan="5"><input type="text" name="version" id="version" size="50" maxlength="50" value="<?php echo stripslashes($version); ?>" /></td>
  147. </tr>
  148.  
  149. <tr>
  150. <td><div><font size=4 COLOR='#377693'><span style="font-variant: small-caps;"><B><label for="link">Lien *</label></B></SPAN></font></div></td></tr>
  151. <tr>
  152. <td colspan="5"><input type="text" name="link" id="link" size="50" maxlength="50" value="<?php echo stripslashes($link); ?>" /></td>
  153. </tr>
  154.  
  155. <tr>
  156. <td><BR><div><font size=4 COLOR='#377693'><B><span style="font-variant: small-caps;"><label for="description">Description *</label></SPAN></B></font></div></td>
  157. </tr>
  158. <tr>
  159. <td colspan='5'><textarea rows="5" cols="76" name="description" id="description" value="<?php echo stripslashes($description); ?>"></textarea></td>
  160. </tr>
  161.  
  162. <tr>
  163. <td height="24"></td>
  164. <td> </td>
  165. <td> </td>
  166. </tr>
  167. <tr>
  168. <td height="14"></td>
  169. <td width="16%"><center><input type="reset" name="Submit2" value="Effacer"></center></td>
  170. <td width="28%"><left><input type="submit" name="Submit" value="Enregistrer l'info"></left></td>
  171. </tr>
  172. <tr>
  173. <td height="20"></td>
  174. <td></td>
  175. <td></td>
  176. </tr>
  177. </form>
  178. </table></td></tr>
  179. </table>
  180. </div>
  181. <BR><BR><BR>
  182. <P align="right"><FONT COLOR='#377693' STYLE="font-family:trebuchet MS;">* indique un champ requis</FONT></P>
  183. </body>
  184. </html>


Merci d'avance pour votre aide !

Autres pages sur : formulaire php test champs vides

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