Validation d'un formulaire avec gestion d'alerte

Validation d'un formulaire avec gestion d'alerte - PHP - Programmation

Marsh Posté le 05-04-2005 à 16:42:46    

Bonjour,
suis niveau débutant en PHP,mais je me creuse les méninges ...
 
j'ai un formulaire, avec un champ
nom
prenom
organisation
adresse
tel
fax
courriel
notes
et un bouton envoyer
 
voici ma démarches :
 
1- je definis mes variables :

Code :
  1. if(!empty($_POST['nom']))
  2. $nom=$_POST['nom'];
  3. else $nom='';
  4.  
  5. if(!empty($_POST['prenom']))
  6. $prenom=stripslashes($_POST['prenom']);
  7. else $prenom='';
  8.  
  9. if(!empty($_POST['organisation']))
  10. $organisation=stripslashes($_POST['organisation']);
  11. else $organisation='';
  12. etc...


 
2- Je défini mes alertes :

Code :
  1. if(!empty($envoyer)){                       
  2. // est ce que les champs sont vides ? car ils doivent etre obligatoirement remplis
  3. if(empty($nom) || empty($prenom) || empty($organisation) || empty($tel)  ||
  4. empty($fax) || empty($courriel)  || empty($notes)){                         
  5. $alerte = '';
  6.  $count = 0;
  7.        if(empty($nom)){
  8.         $alerte .= ' votre nom' . "\n";
  9.         $count++;
  10.         }
  11.        if(empty($prenom)){
  12.         $alerte .= ' votre prénom' . "\n";
  13.         $count++;
  14.         }
  15.        if(empty($organisation)){
  16.         $alerte .= ' votre société' . "\n";
  17.         $count++;
  18.         }


etc....
 
3- JE GERE MES ALERTES : (en fonction que j'ai UNE ou PLUSIEURS ALERTES)

Code :
  1. if ($count > 1){
  2. $alerte = 'les champs suivants sont mal renseignés ou non remplis' . "\n" . $alerte;
  3. }
  4. else $alerte = 'le champ suivant est mal renseigné ou n\'a pas été rempli' . "\n" . $alerte;
  5. }


 
4- SI J'ai des alertes : je les affiches

Code :
  1. if (!empty($alerte)){
  2.     print alerte ($alerte);
  3. }


 
5- SINON J'envoie mon mail avec la fonction MAIL
 

Code :
  1. else if{!empty($envoyer)){


....
 
Ok ? c'est simple jusqu'à maintenant, tout le monde suit ?
 
6- eNFIN j'affiche mon formulaire si le bouton valider n'a pas été cliquer et s'il n'y a aucune alerte...

Code :
  1. if (empty($envoyer)) || !empty($alerte)) {


 
...
 
pourtant, quand je visualise mon formulaire : rien ne se passe ...J'ai une page toute blanche...
Quelqu'un a t il des pistes pour que je trouve mon bug ?
MERCI d'avance
François


Message édité par foxcssfox le 05-04-2005 à 16:47:41
Reply

Marsh Posté le 05-04-2005 à 16:42:46   

Reply

Marsh Posté le 05-04-2005 à 16:47:10    

STP utilise les boutons pour poster du code.
 
sinon ta variable $envoyer elle sort d'où ?

Reply

Marsh Posté le 05-04-2005 à 16:51:06    

voici mon code complet :
une page blanche apparaît... Où est mon bug ?
MERCI de me donner des pistes...et conseils
 
Merci d'avance
 

Code :
  1. <?php
  2. function alerte($alerte){
  3. return '<div class="alerte">' . $alerte . '</div>';
  4. }
  5. function check_mail($courriel) { 
  6. return ereg("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+",$courriel); 
  7. }
  8. // TOUTES MES VARIABLES DOIVENT EXISTER (soit le champ est rempli soit le champ est volontairement vide)
  9. if(!empty($_POST['nom']))
  10. $nom=$_POST['nom'];
  11. else $nom='';
  12.  
  13. if(!empty($_POST['prenom']))
  14. $prenom=stripslashes($_POST['prenom']);
  15. else $prenom='';
  16.  
  17. if(!empty($_POST['organisation']))
  18. $organisation=stripslashes($_POST['organisation']);
  19. else $organisation='';
  20.                      
  21. if(!empty($_POST['tel']))
  22. $tel=stripslashes($_POST['tel']);
  23. else $tel='';
  24. if(!empty($_POST['fax']))
  25. $fax=stripslashes($_POST['fax']);
  26. else $fax= '';
  27. if(!empty($_POST['courriel']))
  28. $courriel=stripslashes($_POST['courriel']);
  29. else $courriel='';
  30. if(!empty($_POST['titre']))
  31. $titre=stripslashes($_POST['titre']);
  32. else $titre='';
  33. if(!empty($_POST['notes']))
  34. $notes=stripslashes($_POST['notes']);
  35. else $notes= '';
  36. //else $notes= 0;
  37. if(!empty($_POST['envoyer']))
  38. $envoyer=stripslashes($_POST['envoyer']);
  39. else $envoyer= false;
  40. if(!empty($envoyer)){                       
  41. // est ce que les champs sont vides ? car ils doivent etre obligatoirement remplis
  42. if(empty($nom) || empty($prenom) || empty($organisation) || empty($tel)  ||
  43. empty($fax) || empty($courriel)  || empty($notes)){                         
  44. //empty($fax) || empty($courriel)  || empty($notes) || !check_mail($courriel)){   
  45.  $alerte = '';
  46.  $count = 0;
  47.        if(empty($nom)){
  48.         $alerte .= ' votre nom' . "\n";
  49.         $count++;
  50.         }
  51.        if(empty($prenom)){
  52.         $alerte .= ' votre prénom' . "\n";
  53.         $count++;
  54.         }
  55.        if(empty($organisation)){
  56.         $alerte .= ' votre société' . "\n";
  57.         $count++;
  58.         }
  59.        if(empty($tel)){
  60.         $alerte .= ' votre téléphone' . "\n";
  61.         $count++;
  62.         }
  63.        if(empty($fax)){
  64.         $alerte .= ' votre fax' . "\n";
  65.         $count++;
  66.         }
  67.        if(empty($sujet)){
  68.         $alerte .= ' l\'objet de votre message' . "\n";
  69.         $count++;
  70.         }
  71.        if(empty($courriel)){
  72.         $alerte .= ' votre adresse électronique' . "\n";
  73.         $count++;
  74.         }
  75.        if(empty($notes)){
  76.         $alerte .= ' votre message' . "\n";
  77.         $count++;
  78.         }
  79.            
  80. if ($count > 1){
  81. $alerte = 'les champs suivants sont mal renseignés ou non remplis' . "\n" . $alerte;
  82. }
  83. else $alerte = 'le champ suivant est mal renseigné ou n\'a pas été rempli' . "\n" . $alerte;
  84. }
  85. }
  86. ?>
  87. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  88. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  89. <head>
  90. <title>Contactez-nous</title>
  91.     <link type="text/css" href="styles/xmodule.structure.css" rel="stylesheet"/>
  92.     <link type="text/css" href="styles/xmodule.articles.css" rel="stylesheet"/>
  93.     <link type="text/css" href="styles/xmodule.news.css" rel="stylesheet"/>
  94.     <link type="text/css" href="styles/xmodule.menu.css" rel="stylesheet"/>
  95.     <link type="text/css" href="styles/xmodule.general.css" rel="stylesheet"/>
  96.     <link type="text/css" href="styles/xmodule.formulaire.css" rel="stylesheet"/>
  97. <style type="text/css" media="all">
  98. <!--
  99. -->
  100. </style>
  101. </head>
  102. <body>
  103. <div id="head" class="contacts">
  104.   <div><img src="images/bandeaux/bando_contact.gif" alt="" /></div>
  105.  <div id="menu">
  106.  <ul>
  107.   <li><a href="presentation.html"><img src="images/o_exagone_off.gif" alt="" /></a></li>
  108.   <li><a href="services.html">Services</a></li>
  109.   <li><a href="solutions.html">Solutions</a></li>
  110.   <li><a href="contact.html"><img src="images/menu/contact.gif" alt="" /></a></li>
  111.  </ul>
  112.  </div>
  113.  </div>
  114. <div id="global" >
  115.   <div id="gauche" >
  116.     <div id="sous-menu1"></div>
  117.    <div id="sous-menu">
  118.     <a href="contact.html">Nous contacter</a><br />
  119.     <a href="formulaire.php" class="ici">Demande<br />d'information</a><br />
  120.     </div>
  121.    <div id="sous-menu3"></div>
  122.  </div>
  123.  <div id="principal" >
  124. <?php
  125.                  
  126. // verification du contenu de la chaine mail il doit y avoir un arobase et un point
  127. //        if(!check_mail($courriel))print alerte($alerte_mail1);
  128. //                  }
  129. if (!empty($alerte)){
  130.     print alerte ($alerte);
  131. }
  132. else if(!empty($envoyer)){
  133. $destinataire = "francois.duarte@9online.fr";
  134. $from = "$courriel";
  135. $reponse = "$notes";
  136. $sujet = "$sujet" ;
  137. $message = "
  138. Nom de votre interlocuteur :              $nom
  139. Prénom de votre interlocuteur :         $prenom
  140. Telephone de votre interlocuteur :              $tel
  141. Fax de votre interlocuteur :                      $fax
  142. Email de votre correspondant :               $courriel
  143. Societe :                                              $organisation
  144. Message en provenance du site :
  145. $notes
  146. " ;
  147. mail($destinataire,$sujet, $message,"From:$from\r\nReply-To:$from" );
  148. //echo "le formulaire contient" . count($_POST) . "éléments qui ont été transférés";
  149. echo "Votre message a bien été envoyé, nous y répondrons dans les meilleurs délais !";
  150. }
  151. if (empty($envoyer) || !empty($alerte)) {
  152. ?>
  153.           
  154. <form id="formulaire" action="" method="post">
  155. <h2>Nous contacter</h2>
  156.   <!--<fieldset id="coordonnees">
  157.    <legend>Coordonnées</legend>
  158.    <br />-->
  159. <p><label for="nom">Nom :</label><input type="text" maxlength="255" name="nom" id="nom" value="<?=stripslashes(htmlentities($nom))?>" /></p>
  160. <p><label for="prenom">Pr&eacute;nom :</label><input type="text"  maxlength="255" name="prenom" id="prenom" value="<?=stripslashes(htmlentities($prenom))?>" /></p>
  161. <p><label for="organisation">Organisation :</label><input type="text" maxlength="255" name="organisation" id="organisation"value="<?=stripslashes(htmlentities($organisation))?>" /></p>
  162. <p><label for="tel">T&eacute;l :</label><input type="text" maxlength="255" name="tel" id="tel" value="<?=stripslashes(htmlentities($tel))?>" /></p>
  163. <p><label for="fax">Fax :</label><input type="text" maxlength="255" name="fax" id="fax" value="<?=stripslashes(htmlentities($fax))?>" /></p>
  164. <p><label for="courriel">Courriel :</label><input type="text" maxlength="255" name="courriel" id="courriel" value="<?=stripslashes(htmlentities($courriel))?>" /></p>
  165. <!--</fieldset>-->
  166.   <!-- <fieldset id="coordonnees">
  167.    <legend>Coordonnées</legend>
  168.    <br />-->
  169. <p><label for="sujet">Objet :</label><input type="text" maxlength="255" name="sujet" id="sujet"value="<?=stripslashes(htmlentities($sujet))?>" /></p>
  170. <p><label for="notes">Notes :</label><textarea rows="10" cols="" name="notes" id="notes"><?=stripslashes(htmlentities($notes))?></textarea><br /><br /></p>
  171. <!-- </fieldset>-->
  172. <p><label for="envoyer">&nbsp;</label><input type="submit" value="Envoyer" name="envoyer" id="envoyer" /></p>
  173.    
  174. </form>
  175.  <?php
  176.   }
  177.  ?>
  178.  </div>
  179. </div>
  180. <p class="clear">&nbsp;</p>
  181. </body>
  182. </html>


Message édité par foxcssfox le 06-04-2005 à 12:51:56
Reply

Marsh Posté le 06-04-2005 à 10:15:21    

Après avoir encore cherché je trouve pas mon erreur :
j'ai testé la fonction mail: elle fonctionne..
 
Normalement, un message d'erreur apparaît avec un numero ligne... MOI, la page est toute blanche... si j'enleve tout le code PHP, j'ai bien mon formulaire qui apparaît...
 
A quoi cela peut il etre du ?
 
Je suis perfectionniste, la page a été réalisée en XHTML 1 Strict et feuilles de styles. je me débrouille bien de ce côté là, mon probleme c'est PHP.. j'ai lu beaucoup de choses sur le sujet, mais je manque de pratique et de confiance en moi..
 
sinon, pouvez vous m'aider... Mon code PHP est il correct ?
Merci d'avance...

Reply

Marsh Posté le 06-04-2005 à 10:23:19    

ya des erreurs dans ton script, elle ne s'affiche pas chez toi ??
 
ligne 164 : { à la place de (
ligne 190 : une ) en trop

Reply

Marsh Posté le 06-04-2005 à 10:30:49    

Merci Soju pour ta réponse,
j'ai corrigé le code ci-dessus, mais ça ne fonctionne toujours pas...
 
peux tu me dire comment tu as fait pour voir les deux erreurs ligne 164 et 190, aussi vite ?
 
ma page sur mon navigateur reste blanche et ne me donne aucune indication de message d'erreur ?
 
Merci...

Reply

Marsh Posté le 06-04-2005 à 10:52:33    

foxcssfox a écrit :

peux tu me dire comment tu as fait pour voir les deux erreurs ligne 164 et 190, aussi vite


un copier/coller du code + test, tout simplement.
ton serveur est mal configuré je pense, c'est pour cela que tu ne vois pas les erreurs.
 
essaye d'ajouter la ligne suivante au début de ton code :

Code :
  1. error_reporting(E_ALL);

Reply

Marsh Posté le 06-04-2005 à 11:22:17    

J'ai corrigé, ca marche !!! ;-)
merci de m'avoir donner des pistes..
 
l'erreur venait d'un malheureux ESPACE  
LIGNE 160
 
AVANT  

Code :
  1. print alerte ($alerte);


APRES

Code :
  1. print alerte($alerte);


 
1 journée de perdu pour un espace...
je suis quand même fier de moi. Merci
 

Code :
  1. <?php
  2. function alerte($alerte){
  3. return '<div id="alerte" class="alerte">' . $alerte . '</div>';
  4. }
  5. function validation($validation){
  6. return '<div class="validation">' . $validation . '</div>';
  7. }
  8. function check_mail($courriel) { 
  9. return ereg("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+",$courriel); 
  10. }
  11. // TOUTES MES VARIABLES DOIVENT EXISTER (soit le champ est rempli soit le champ est volontairement vide)
  12. if(!empty($_POST['nom']))
  13. $nom=$_POST['nom'];
  14. else $nom='';
  15.  
  16. if(!empty($_POST['prenom']))
  17. $prenom=stripslashes($_POST['prenom']);
  18. else $prenom='';
  19.  
  20. if(!empty($_POST['organisation']))
  21. $organisation=stripslashes($_POST['organisation']);
  22. else $organisation='';
  23.                      
  24. if(!empty($_POST['tel']))
  25. $tel=stripslashes($_POST['tel']);
  26. else $tel='';
  27. if(!empty($_POST['fax']))
  28. $fax=stripslashes($_POST['fax']);
  29. else $fax= '';
  30. if(!empty($_POST['courriel']))
  31. $courriel=stripslashes($_POST['courriel']);
  32. else $courriel='';
  33. if(!empty($_POST['titre']))
  34. $titre=stripslashes($_POST['titre']);
  35. else $titre='';
  36. if(!empty($_POST['notes']))
  37. $notes=stripslashes($_POST['notes']);
  38. else $notes= '';
  39. //else $notes= 0;
  40. if(!empty($_POST['envoyer']))
  41. $envoyer=stripslashes($_POST['envoyer']);
  42. else $envoyer= false;
  43. // je definis mes alertes :  
  44. if(!empty($envoyer)){                       
  45. // est ce que les champs sont vides ? car ils doivent etre obligatoirement remplis
  46. if(empty($nom) || empty($prenom) || empty($organisation) || empty($tel)  ||                       
  47. empty($fax) || empty($courriel)  || empty($notes) || !check_mail($courriel)){ 
  48.  $alerte = '';
  49.  $count = 0;
  50.        if(empty($nom)){
  51.         $alerte .= '- votre nom' . "<br/>";
  52.         $count++;
  53.         }
  54.        if(empty($prenom)){
  55.         $alerte .= '- votre prénom' . "<br/>";
  56.         $count++;
  57.         }
  58.        if(empty($organisation)){
  59.         $alerte .= '- votre société' . "<br/>";
  60.         $count++;
  61.         }
  62.        if(empty($tel)){
  63.         $alerte .= '- votre téléphone' . "<br/>";
  64.         $count++;
  65.         }
  66.        if(empty($fax)){
  67.         $alerte .= '- votre fax' . "<br/>";
  68.         $count++;
  69.         }
  70.        if(empty($sujet)){
  71.         $alerte .= '- l\'objet de votre message' . "<br/>";
  72.         $count++;
  73.         }
  74.        if(empty($courriel)){
  75.         $alerte .= '- votre adresse électronique' . "<br/>";
  76.         $count++;
  77.         }
  78.        if(empty($notes)){
  79.         $alerte .= '- votre message' . "<br/>";
  80.         $count++;
  81.         }
  82.   if(!check_mail($mail)){
  83.    $alerte .= '- votre adresse email semble incorrecte' . "<br/>";
  84.    $count++;
  85.    }
  86.            
  87. if ($count > 1){
  88. $alerte = 'les champs suivants sont mal renseignés ou non remplis : ' . "<br/>" . $alerte;
  89. }
  90. else $alerte = 'le champ suivant est mal renseigné ou n\'a pas été rempli : ' . "<br/>" . $alerte;
  91. }
  92. }
  93. ?>
  94. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  95. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  96. <head>
  97. <title>Contactez-nous</title>
  98.     <link type="text/css" href="styles/xmodule.structure.css" rel="stylesheet"/>
  99.     <link type="text/css" href="styles/xmodule.articles.css" rel="stylesheet"/>
  100.     <link type="text/css" href="styles/xmodule.news.css" rel="stylesheet"/>
  101.     <link type="text/css" href="styles/xmodule.menu.css" rel="stylesheet"/>
  102.     <link type="text/css" href="styles/xmodule.general.css" rel="stylesheet"/>
  103.     <link type="text/css" href="styles/xmodule.formulaire.css" rel="stylesheet"/>
  104. <style type="text/css" media="all">
  105. <!--
  106. -->
  107. </style>
  108. </head>
  109. <body>
  110. <div id="head" class="contacts">
  111.   <div><img src="images/bandeaux/bando_contact.gif" alt="" /></div>
  112.  <div id="menu">
  113.  <ul>
  114.   <li><a href="presentation.html"><img src="images/o_exagone_off.gif" alt="" /></a></li>
  115.   <li><a href="services.html">Services</a></li>
  116.   <li><a href="solutions.html">Solutions</a></li>
  117.   <li><a href="contact.html"><img src="images/menu/contact.gif" alt="" /></a></li>
  118.  </ul>
  119.  </div>
  120.  </div>
  121. <div id="global" >
  122.   <div id="gauche" >
  123.     <div id="sous-menu1"></div>
  124.    <div id="sous-menu">
  125.     <a href="contact.html">Nous contacter</a><br />
  126.     <a href="formulaire.php" class="ici">Demande<br />d'information</a><br />
  127.     </div>
  128.    <div id="sous-menu3"></div>
  129.  </div>
  130.  <div id="principal" >
  131. <form id="formulaire" action="formulaire2.php" method="post">
  132. <h2>Nous contacter</h2>
  133.   <!--<fieldset id="coordonnees">
  134.    <legend>Coordonnées</legend>
  135.    <br />-->
  136. <?php
  137. if (!empty($alerte)){
  138.     print alerte($alerte);
  139. }
  140. else if(!empty($envoyer)){
  141. $destinataire = "foxcssfox@hotxxxx.com";
  142. $from = "$courriel";
  143. $reponse = "$notes";
  144. $sujet = "$sujet" ;
  145. $message = "
  146. Nom de votre interlocuteur :              $nom
  147. Prénom de votre interlocuteur :          $prenom
  148. Telephone de votre interlocuteur :               $tel
  149. Fax de votre interlocuteur :                      $fax
  150. Email de votre correspondant :               $courriel
  151. Societe :                                              $organisation
  152. Message en provenance du site :
  153. $notes
  154. " ;
  155. mail($destinataire,$sujet, $message,"From:$from\r\nReply-To:$from" );
  156. //echo "le formulaire contient" . count($_POST) . "éléments qui ont été transférés";
  157. //echo "Votre message a bien été envoyé, nous y répondrons dans les meilleurs délais !";
  158.     $validation ="Votre message a bien été envoyé, nous y répondrons dans les meilleurs délais !";
  159.     print validation($validation);
  160. }
  161. if (empty($envoyer) || !empty($alerte)) {
  162. ?>
  163.           
  164. <p><label for="nom">Nom :</label><input type="text" maxlength="255" name="nom" id="nom" value="<?=stripslashes(htmlentities($nom))?>" /></p>
  165. <p><label for="prenom">Pr&eacute;nom :</label><input type="text"  maxlength="255" name="prenom" id="prenom" value="<?=stripslashes(htmlentities($prenom))?>" /></p>
  166. <p><label for="organisation">Organisation :</label><input type="text" maxlength="255" name="organisation" id="organisation"value="<?=stripslashes(htmlentities($organisation))?>" /></p>
  167. <p><label for="tel">T&eacute;l :</label><input type="text" maxlength="15" name="tel" id="tel" value="<?=stripslashes(htmlentities($tel))?>" /></p>
  168. <p><label for="fax">Fax :</label><input type="text" maxlength="15" name="fax" id="fax" value="<?=stripslashes(htmlentities($fax))?>" /></p>
  169. <p><label for="courriel">Courriel :</label><input type="text" maxlength="255" name="courriel" id="courriel" value="<?=stripslashes(htmlentities($courriel))?>" /></p>
  170. <!--</fieldset>-->
  171.   <!-- <fieldset id="coordonnees">
  172.    <legend>Coordonnées</legend>
  173.    <br />-->
  174. <p><label for="sujet">Objet :</label><input type="text" maxlength="255" name="sujet" id="sujet"value="<?=stripslashes(htmlentities($sujet))?>" /></p>
  175. <p><label for="notes">Notes :</label><textarea rows="10" cols="" maxlength="2000" name="notes" id="notes"><?=stripslashes(htmlentities($notes))?></textarea><br /><br /></p>
  176. <!-- </fieldset>-->
  177. <p><label for="envoyer">&nbsp;</label><input type="submit" value="Envoyer" name="envoyer" id="envoyer" /></p>
  178.    
  179. </form>
  180. <div id="news">
  181. <h4>Nous contacter</h4>
  182. <div>
  183. <p><br/>Remplissez vos coordonnées et envoyez-nous votre message en cliquant sur le bouton "envoyer", nous preterons une attention
  184. particulière à votre message. <br /><br /><br />
  185. <span>Adresse :</span><br /> 95 bd Berthier <br />75017 Paris<br /><br />
  186. <span>Tél.:</span> 01.47.63.37.64<br />
  187. <span>Fax :</span> 01.47.63.37.74<br />
  188. <br /></p>
  189. </div>
  190. </div>
  191.  <?php
  192.   }
  193.  ?>
  194.  </div>
  195. </div>
  196. <p class="clear">&nbsp;</p>
  197. <!-- <div id="pied2page" >
  198. </div>
  199. -->
  200. </body>
  201. </html>


Message édité par foxcssfox le 06-04-2005 à 12:52:50
Reply

Sujets relatifs:

Leave a Replay

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