Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2940 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Resolu] Problème formulaire envoi mail

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Resolu] Problème formulaire envoi mail

n°2010489
tompouss
Petit chat
Posté le 20-07-2010 à 21:05:11  profilanswer
 

Hello
 
j'ai un formulaire d'envoi de mail qui fonctionne pas malgré que le script me dise le contraire
 

Code :
  1. <?php
  2. session_start();
  3. $emailTo = '********@gmail.com';
  4. /* CODE SOURCE: http://www.raymondselda.com/php-co [...] idation/*/
  5. //If the form is submitted
  6. if(!isset($_POST['submit'])) { header("Location: contact.php" );}
  7. else{
  8.  //Check to make sure that the name field is not empty
  9.  if(trim($_POST['nom']) == '') {
  10.   $hasError = true;
  11.  } else {
  12.   $name = trim($_POST['nom']);
  13.  }
  14.  if(trim($_POST['prenom']) == '') {
  15.   $hasError = true;
  16.  } else {
  17.   $name = trim($_POST['prenom']);
  18.  }
  19.  //Check to make sure that the subject field is not empty
  20.  if(trim($_POST['sujet']) == '') {
  21.   $hasError = true;
  22.  } else {
  23.   $subject = trim($_POST['sujet']);
  24.  }
  25.  //Check to make sure sure that a valid email address is submitted
  26.  if(trim($_POST['email']) == '')  {
  27.   $hasError = true;
  28.   $errorMailVide=true;
  29.  } else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
  30.   $hasError = true;
  31.   $errorMailInvalide=true;
  32.  } else {
  33.   $email = trim($_POST['email']);
  34.  }
  35.  //Check to make sure comments were entered
  36.  if(trim($_POST['message']) == '') {
  37.   $hasError = true;
  38.   $errorMessage=true;
  39.  } else {
  40.   if(function_exists('stripslashes')) {
  41.    $comments = stripslashes(trim($_POST['message']));
  42.   } else {
  43.    $comments = trim($_POST['message']);
  44.   }
  45.  }
  46.  //If there is no error, send the email
  47.  if(!isset($hasError)) {
  48.   //EMAIL A CHANGER -->  
  49.   //EMAIL A CHANGER  
  50.   $body = "Name: $name \n\nEmail: $email \n\nSubject: $subject \n\nComments:\n $comments";
  51.   $headers = 'From: My Site <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;
  52.   if (mail($emailTo, $subject, $body, $headers)) $emailSent = true;
  53.   else $emailSent = false;
  54.   include("contact.php" );
  55.  }
  56.  else{
  57.   include("contact.php" );
  58.   $_SESSION["erreur"] = $hasError;
  59.   $_SESSION["erreurMail"] = $errorMailInvalide;
  60.  }
  61. }
  62. ?>


 
 
le formulaire:
 

Code :
  1. <p> Tous les champs doivent &eacute;tre remplis !</p>
  2.    <?php if(isset($hasError)) { //If errors are found ?>
  3.     <p class="sentError">Tous les champs doivent e&ecirc;tre remplis</p>
  4.    <?php }
  5.    if(isset($emailSent) && ($emailSent == true)) { //If email is sent ?>
  6.     <p class="sentOk"><strong>Email envoy&eacute; ! Nous y r&eacute;pondrons dans les plus brefs d&eacute;lais.</strong></p>
  7. <?php } ?>
  8.       <form id="contactform" method="post" action="formulaire.php">
  9.     <p class="champ_form">
  10.      <label for="nom">Nom :</label>
  11.      <input type="text" name="nom" id="nom"  class="required" />
  12.     </p>
  13.     <p class="champ_form">
  14.      <label for="prenom">Prenom :</label>
  15.      <input type="text" name="prenom" id="prenom" class="required"/>
  16.     </p>
  17.     <p class="champ_form">
  18.      <label for="email">Email :</label>
  19.      <input type="text" name="email" id="email" class="required email" />
  20.     </p>
  21.     <p class="champ_form">
  22.      <label for="sujet" >Sujet :</label>
  23.      <input type="text" name="sujet" id="sujet" class="required"/>
  24.     </p> 
  25.     <p>
  26.      <label id="message" for="message">Votre message :</label>
  27.      <textarea id="message" name="message" rows="8" cols="45" class="required"/></textarea>
  28.     </p>
  29.     <input type="submit" id="bouton_envoi" title="Envoyer le message" value="Envoyer" name="submit" />
  30.     </form>


 
 
Si qq'un a une idée..
 
merci d'avance
 
Tom
 
 
EDIT:  
 
je fais un test javascript via Jquery validation avant, c'est peut etre ca le probleme ?


Message édité par tompouss le 21-07-2010 à 14:30:04

---------------
collectionneur de pâtes thermiques
mood
Publicité
Posté le 20-07-2010 à 21:05:11  profilanswer
 

n°2010579
dwogsi
Défaillance cérébrale...
Posté le 21-07-2010 à 09:50:39  profilanswer
 

Ça fonctionne, ça ne fonctionne pas... ça ne veut pas dire grand chose. Quels sont les messages d'erreur ?


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°2010634
tompouss
Petit chat
Posté le 21-07-2010 à 13:33:30  profilanswer
 

Et bien en fait il n'y en a pas.
 
je devrais mettre un try/catch peut etre mais je vois pas trop où le placer


---------------
collectionneur de pâtes thermiques
n°2010669
tompouss
Petit chat
Posté le 21-07-2010 à 14:29:27  profilanswer
 

Bon ben probleme résolu ... en réfléchissant un peu ^^


---------------
collectionneur de pâtes thermiques
n°2010788
Lap1n0u
My mother had me tested.
Posté le 21-07-2010 à 16:27:16  profilanswer
 

Tu devrais dire comment tu as résolu ton problème, ça aidera sûrement ceux qui ont le même. Tu n'imagines pas à quel point c'est frustrant, en faisant une recherche avec notre ami google, de voir 5, 6, 7 topics sur ton problème, avec les gars qui disent "problème résolu" à la fin sans expliquer... :/


---------------
[VDS] Rien pour le moment
n°2010840
Dj YeLL
$question = $to_be || !$to_be;
Posté le 21-07-2010 à 18:59:15  profilanswer
 

Lap1n0u a écrit :

Tu devrais dire comment tu as résolu ton problème, ça aidera sûrement ceux qui ont le même. Tu n'imagines pas à quel point c'est frustrant, en faisant une recherche avec notre ami google, de voir 5, 6, 7 topics sur ton problème, avec les gars qui disent "problème résolu" à la fin sans expliquer... :/


 
+1
 
Le nombre de fois où ça m'arrive ... j'ai envie de tuer tout le monde après :o


---------------
Gamertag: CoteBlack YeLL
n°2010867
tompouss
Petit chat
Posté le 21-07-2010 à 23:47:07  profilanswer
 

Voici le formulaire qui fonctionne  
 

Code :
  1. <p> Tous les champs doivent &eacute;tre remplis !</p>
  2.    <div id="message_envoi">
  3.     <?php if(isset($error) && ($error == true)) { //Si tous les champs ne sont pas vides ?>
  4.      <p class="sentError"><strong>Veuillez remplir tous les champs svp</strong></p>
  5.     <?php }
  6.     if(isset($envoye) && ($envoye == true)) { //Si l'email a bien ete envoyé ?>
  7.      <p class="sentOk"><strong>Email envoy&eacute; ! Nous y r&eacute;pondrons dans les plus brefs d&eacute;lais.</strong></p>
  8.     <?php } ?>
  9.    </div>
  10.    <br />
  11.       <form id="formulaire" method="post" action="formulaire.php">
  12.     <p class="champ_form">
  13.      <label for="nom">Nom :</label>
  14.      <input type="text" name="nom" onblur="champVide(this)" />
  15.     </p>
  16.     <p class="champ_form">
  17.      <label for="prenom">Prenom :</label>
  18.      <input type="text" name="prenom" onblur="champVide(this)" />
  19.     </p>
  20.     <p class="champ_form">
  21.      <label for="email">Email :</label>
  22.      <input type="text" name="mail" onblur="MailOk(this)" />
  23.     </p>
  24.     <?php if( isset($erreurMailInvalide) )&&($erreurMailInvalide)){ echo ?> <p class="mailInvalide"><strong>Votre email ne semble pas valide</strong></p> <?php } ?>
  25.     <p class="champ_form">
  26.      <label for="sujet" >Sujet :</label>
  27.      <input type="text" name="sujet" onblur="champVide(this)"/>
  28.     </p> 
  29.     <p>
  30.      <label id="message" for="message">Votre message :</label>
  31.      <textarea id="message_input" name="message" rows="8" cols="45"  onblur="champVide(this)"/></textarea>
  32.     </p>
  33.     <input type="submit" id="bouton_envoi" title="Envoyer le message" value="Envoyer" name="submit" />
  34.     </form>


 
 
 
Le script d'envoi de mail

Code :
  1. <?php
  2. session_start();
  3. $destinataire = "*****@*****.com";
  4. if( !isset($_POST['submit']) ) {
  5. header("Location: contact.php" );
  6. } else {
  7. $error=false;
  8. if( empty($_POST['nom']) ) {
  9.  $error=true;
  10. }
  11. if( empty($_POST['prenom']) ) {
  12.  $error=true;
  13. }
  14. if( empty($_POST['mail']) ) {
  15.  $error=true;
  16. }
  17. else
  18. {
  19.  $exp='/^[a-z0-9\._-]+@[[a-z0-9\._-]+\.[a-z]{2,4}$/i';
  20.  $mailvalide=preg_match($exp,$_POST['mail']);
  21.  if (!$mailvalide) $erreurMailInvalide=true;
  22. }
  23. if( empty($_POST['sujet']) ) {
  24.  $error=true;
  25. }
  26. if( empty($_POST['message']) ) {
  27.  $error=true;
  28. }
  29. if(( !$error) && ($mailvalide)){
  30.  /* sujet */
  31.  $subject = $_POST['sujet'];
  32.  /* message */
  33.  ob_start();
  34.  ?>
  35.  Nom : <?php echo (trim($_POST['nom'])); ?><br />
  36.  Prenom : <?php echo (trim($_POST['prenom'])); ?><br />
  37.  Adresse email : <?php echo (trim($_POST['mail'])); ?><br />
  38.  Message : <?php echo (trim($_POST['message'])); ?><br />
  39.  <?php echo nl2br(addslashes($_POST['message']));
  40.  $message = ob_get_contents();
  41.  ob_end_clean();
  42.  /* Pour envoyer un mail au format HTML, vous pouvez configurer le type Content-type. */
  43.  $headers  = "MIME-Version: 1.0\r\n";
  44.  $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  45.  /* D'autres en-têtes */
  46.  $headers .= "To: ".$destinataire."\r\n";
  47.  $headers .= "From: ".$_POST['nom']." ".$_POST['prenom']." <".$_POST['mail'].">\r\n";
  48.  /* et hop, à la poste */
  49.  if( mail($destinataire, $subject, $message, $headers) ) {
  50.   $envoye = true;
  51.  } else {
  52.   $envoye = false;
  53.  }
  54.  include("contact.php" );
  55.  // Fin de l'envoi du mail
  56.  // Debut de l'affichage de confirmation de l'envoi du mail
  57. } else {
  58.  include("contact.php" );
  59.  $_SESSION["error"] = $error;
  60.  $_SESSION["erreurMail"] = $erreurMailInvalide;
  61. }
  62. }
  63. ?>


 
 
EDIT: Formulaire modifié: message d'erreur quand l'email est invalide
Si quelqu'un a une idée pour l'améliorer, je suis preneur...


Message édité par tompouss le 23-07-2010 à 10:10:56

---------------
collectionneur de pâtes thermiques

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Resolu] Problème formulaire envoi mail

 

Sujets relatifs
[Résolu][Batch] Comparaison chaines de caractères[XML/XSL]Problème avec aply template ou autre chose
problème de programmationProblème de split
Problème : aucun accent dans mon formulaireFormulaire de login OK en local mais pas sur le net ? (pb de sessions)
Envoyer un mail via ExcelProblème pour appelé une feuille & extraire des données sous excel
Problème avec une requête mysql en PHP 
Plus de sujets relatifs à : [Resolu] Problème formulaire envoi mail


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR