Se connecter / S'enregistrer
Votre question

Formulaire xHTML + PHP non reconnu

Tags :
  • Email
  • Programmation
Dernière réponse : dans Programmation
6 Septembre 2007 20:41:14

Bonsoir,

Dans mon site, comme beaucoup j'ai une parti contact... Et dans celle ci j'ai mis un formulaire avec des champs : Regardez IcI

Mais le probleme c'est que mon formulaire ce compose d'une partie xHTML et d'un php qui sont deux fichier à part...

Et le probleme vient du fichier php qui n'est pas reconnu (cliquez sur envoyer et vous verrez ou Cliquez IcI)

Donc voici mon Code qui se nomme contact.html :

<code type="html">

</code>

Et voici mon code PHP qui se nomme email.php :

  1. <?php
  2. if (isset($_POST["envoyer"])){ // Si le formulaire a été soumis
  3. $etat = "erreur"; // On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur
  4.  
  5. // On récupère les champs du formulaire, et on arrange leur mise en forme
  6. if (isset($_POST[""])) $_POST["son_nom"]=trim(stripslashes($_POST["son_nom"])); // trim() enlève les espaces en début et fin de chaine
  7.  
  8. if (isset($_POST["son_email"])) $_POST["son_email"]=trim(stripslashes($_POST["son_email"])); // stripslashes() retire les backslashes ==> \' devient '
  9.  
  10. if (isset($_POST["son_depart"])) $_POST["son_depart"]=trim(stripslashes($_POST["son_depart"]));
  11.  
  12. if (isset($_POST["son_objet"])) $_POST["son_objet"]=trim(stripslashes($_POST["son_objet"]));
  13.  
  14. if (isset($_POST["son_message"])) $_POST["son_message"]=trim(stripslashes($_POST["son_message"]));
  15.  
  16. // Après la mise en forme, on vérifie la validité des champs
  17. if (empty($_POST["son_nom"])) { // L'utilisateur n'a pas rempli le champ pseudo
  18. $erreur="Vous n'avez pas entré nom..."; // On met dans erreur le message qui sera affiché
  19. }
  20. elseif (empty($_POST["son_email"])) { // L'utilisateur n'a pas rempli le champ email
  21. $erreur="Nous avons besoin de votre e-mail pour vous répondre...";
  22. }
  23. elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["son_email"])){ // On vérifie si l'email est bien de la forme messagerie@domaine.tld (cf cours d'expressions régulières)
  24. $erreur="Votre adresse e-mail n'est pas valide...";
  25. }
  26. elseif (empty($_POST["son_objet"])) { // L'utilisateur n'a pas rempli le champ objet
  27. $erreur="Vous devez entrer l'objet de votre message...";
  28. }
  29. elseif (empty($_POST["son_message"])) { // L'utilsateur n'a écrit aucun message
  30. $erreur="Merci de saisir un message...";
  31. }
  32. else { // Si tous les champs sont valides, on change l'état à ok
  33. $etat="ok";
  34. }
  35. }
  36. else { // Sinon le formulaire n'a pas été soumis
  37. $etat="attente"; // On passe donc dans l'état attente
  38. }
  39.  
  40. if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
  41. if ($etat=="erreur"){ // Cas où le formulaire a été soumis mais il y a des erreurs
  42. echo "<span style=\"color:red\">".$erreur."</span><br /><br />\n"; // On affiche le message correspondant à l'erreur
  43. }
  44. ?>
  45.  
  46. <!-- Formulaire HTML qu'on affiche dans l'état attente ou erreur -->
  47. <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <!-- Les données du formulaire seront récupérée avec la méthode POST, et action correspond à la page contenant le formulaire -->
  48. <p style="text-align:left">
  49. <label for="son_nom">Pseudo *</label><br /> <!-- Intitulé du champ pseudo -->
  50. <input type="text" size="40" name="son_nom" id="son_nom" value="<?php
  51. if (!empty($_POST["son_nom"])) {
  52. // le pseudo de l'expéditeur a été saisi --> le réafficher
  53. echo htmlspecialchars($_POST["son_nom"],ENT_QUOTES); // htmlspecialchars() convertit les caractères spéciaux en leurs code html, exemple : & devient &
  54. }
  55. ?>" />
  56.  
  57. <br />
  58.  
  59. <label for="son_email">E-mail *</label><br /> <!-- Intitulé du champ e-mail -->
  60. <input type="text" size="40" name="son_email" id="son_email" value="<?php
  61. if (!empty($_POST["son_email"])) {
  62. // l'e-mail de l'expéditeur a été saisi --> le réafficher
  63. echo htmlspecialchars($_POST["son_email"],ENT_QUOTES);
  64. }
  65. ?>" />
  66.  
  67. <br />
  68.  
  69. <label for="son_depart">URL de votre site</label><br /> <!-- Intitulé du champ url (facultatif) -->
  70. <input type="text" size="40" name="son_depart" id="son_depart" value="<?php
  71. if (!empty($_POST["son_depart"])) {
  72. // l'url a été saisi --> la réafficher
  73. echo htmlspecialchars($_POST["son_depart"],ENT_QUOTES);
  74. }
  75. ?>" />
  76.  
  77. <br />
  78.  
  79. <label for="son_objet">Objet *</label><br /> <!-- Intitulé du champ objet -->
  80. <input type="text" size="40" name="son_objet" id="son_objet" value="<?php
  81. if (!empty($_POST["son_objet"])) {
  82. // l'objet du message a été saisi --> le réafficher
  83. echo htmlspecialchars($_POST["son_objet"],ENT_QUOTES);
  84. }
  85. ?>" />
  86.  
  87. <br />
  88.  
  89. <label for="son_message">Message *</label><br /> <!-- Intitulé du champ message -->
  90. <textarea name="son_message" id="son_message" cols="60" rows="25"><?php
  91. if (isset($_POST["son_message"])) {
  92. // le message a été saisi --> le réafficher
  93. echo htmlspecialchars($_POST["son_message"],ENT_QUOTES);
  94. }
  95. ?>
  96. </textarea>
  97.  
  98. <br />
  99.  
  100. <input type="submit" name="envoyer" value="Envoyer" /><input type="reset" name="reset" value="Effacer" />
  101. </p>
  102. </form>
  103. <!-- FIN du formulaire HTML -->
  104.  
  105. <?php
  106. }
  107. else { // Sinon l'état est ok donc on envoie le mail
  108. $son_nom = $_POST["son_nom"]; // On stocke les variables récupérées du formulaire
  109. $son_email = $_POST["son_email"];
  110. $son_depart = $_POST["son_depart"];
  111. $son_objet = $_POST["son_objet"];
  112. $son_message = $_POST["son_message"];
  113.  
  114. $mon_email = "frederic.chavanne@free.fr"; // Mise en forme du message que vous recevrez
  115. $mon_pseudo = "CDER";
  116. $mon_url = "http://www.cder-immo.fr";
  117. $msg_pour_moi = "- Son pseudo : $son_nom \n
  118. - Son E-mail : $son_email \n
  119. - Son site : $son_depart \n
  120. - Objet du message : $son_objet \n
  121. - Message : \n $son_message \n\n";
  122.  
  123. // Mise en forme de l'accusé réception qu'il recevra
  124. $accuse_pour_lui = "Bonjour $son_nom,\n
  125. Votre message nous a bien été envoyé et nous tâcherons de vous répondre le plus rapidement possible.\n\n
  126. - Votre E-mail : $son_email \n
  127. - Votre site : $son_depart \n
  128. - L'objet de votre message : $son_objet \n
  129. - Votre message : \n $son_message \n\n
  130. Merci et à bientôt sur http://www.cder-immo.fr !";
  131.  
  132. // Envoie du mail
  133. $entete = "From: " . $mon_pseudo . " <" . $mon_email . ">\n"; // On prépare l'entête du message
  134. $entete .= "MIME-Version: 1.0";
  135.  
  136. if (@mail($mon_email,$son_objet,$msg_pour_moi,$entete) && @mail($son_email,$son_objet,$accuse_pour_lui,$entete)){ // Si le mail a été envoyé
  137. echo "<p style=\"text-align:center\">Votre message a été envoyé, vous recevrez une confirmation par mail.<br /><br />\n"; // On affiche un message de confirmation
  138. echo "<a href=\"" . $mon_url . "\">Retour</a></p>\n"; // Avec un lien de retour vers l'accueil du site
  139. }
  140. else { // Sinon il y a eu une erreur lors de l'envoi
  141. echo "<p style=\"text-align:center\">Un problème s'est produit lors de l'envoi du message.\n";
  142. echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a></p>\n"; // On propose un lien de retour vers le formulaire
  143. }
  144. }
  145. ?>


Merci d'avance de votre aide :) 

Autres pages sur : formulaire xhtml php reconnu

6 Septembre 2007 20:46:32

The page cannot be displayed
La page ne peut pas être montrée
6 Septembre 2007 20:51:24

Je pense que ca vient de la sécurité pour laquelle on as pas accés au email.php.

Mais dans mon code, je ne vois pas ou se trouve l'erreur :( 
Contenus similaires
6 Septembre 2007 21:07:19

Hum..erreur 405.. Qui est ton hébergeur ? Le server semble ne pas autoriser $_POST
6 Septembre 2007 21:56:50

Je suis chez 1&1
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