Bug erreur formlaire de contact php ...

TigerDTD Messages postés 934 Statut Membre -  
TigerDTD Messages postés 934 Statut Membre -
Bonjour,

je crée un site et j'utilise dreamweaver. J'ai un code écrit dans la page contact et un fichier php ... Tous deux sur le serveur, le site ne ligne. Mais il ne marche pas et je ne comprend pas pourquoi ...

Quelqu'un pourrait il m'aider svp car j'ai regardé sur les forums etc mais j'ai rien vu de différent dans le code ou quoi ...

J'ai dans mon dossier ma page contact en html et ma page php.

En voici les codes :

Sur la page contact :

"
</article>   
     <article class="col-2">   
       <p> </p>   
       <div class="wrapper pad">   
    <form id="contact" method="post" action="traitement_formulaire.php">   
 <fieldset>   
 <div align="center">   
   <legend></legend>   
   </div>   
 </fieldset>   

 <div style="text-align:center;">   
   <p> </p>   
 </div>   
</form>   

        <form action="traitement_formulaire.php" method="post" name="contact2" id="contact2">   
                            <fieldset>   
                            <div align="center">   
                              <legend></legend>   
                              <legend></legend>   
                              <legend><span class="style1">VOS COORDONNEES :</span></legend>   
                            </div>   
                              <p align="center">   
                              <label for="label"><strong>Votre nom :</strong></label>   
                              <input type="text" id="label" name="nom2" tabindex="1" />   
                              </p>   
                              <p align="center">   
                              <label for="label2"><strong>Votre courriel  :</strong></label>   
                              <input type="text" id="label2" name="email2" tabindex="2" />   
                              </p>   
                              <p align="center"> </p>   
                            </fieldset>   
          <div align="center">   
                              <fieldset>   
                              <legend></legend>   
                                <legend class="style1"></legend>   
                                <legend class="style1"></legend>   
                                <legend class="style1">VOTRE MESSAGE :</legend>   
                              </fieldset>   
             </div>   
          <fieldset>   
                            <p align="center">   
                              <label for="label3"><strong>Sujet :</strong></label>   
                              <input type="text" id="label3" name="objet2" tabindex="3" />   
                            </p>   
            <p align="center">   
              <label for="label4"><strong>Message :</strong></label>   
                              <textarea id="label4" name="message2" tabindex="4" cols="30" rows="8"></textarea>   
                            </p>   
             </fieldset>   
          <div style="text-align:center;">   
                              <p>   
                                <input type="submit" name="envoi2" value="Envoyer le formulaire !" />   
                              </p>   
             </div>   
         </form>


et celui de la page php :

"
<?php   
 /*   
  ********************************************************************************************   
  CONFIGURATION   
  ********************************************************************************************   
 */   
 // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule   
 $destinataire = '***@***';   

 // copie ? (envoie une copie au visiteur)   
 $copie = 'oui'; // 'oui' ou 'non'   

 // Messages de confirmation du mail   
 $message_envoye = "Votre message est bien parvenu à *** !";   
 $message_non_envoye = "L'envoi du mail a échoué, vous pouvez toujours envoyer un courriel à ***@***";   

 // Messages d'erreur du formulaire   
 $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.html\">envoyer le formulaire</a>.";   
 $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que le courriel soit sans erreur.";   

 /*   
  ********************************************************************************************   
  FIN DE LA CONFIGURATION   
  ********************************************************************************************   
 */   

 // on teste si le formulaire a été soumis   
 if (!isset($_POST['envoi']))   
 {   
  // formulaire non envoyé   
  echo '<p>'.$message_erreur_formulaire.'</p>'."\n";   
 }   
 else   
 {   
  /*   
   * cette fonction sert à nettoyer et enregistrer un texte   
   */   
  function Rec($text)   
  {   
   $text = trim($text); // delete white spaces after & before text   
   if (1 === get_magic_quotes_gpc())   
   {   
    $stripslashes = create_function('$txt', 'return stripslashes($txt);');   
   }   
   else   
   {   
    $stripslashes = create_function('$txt', 'return $txt;');   
   }   

   // magic quotes ?   
   $text = $stripslashes($text);   
   $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well   
   $text = nl2br($text);   
   return $text;   
  };   

  /*   
   * Cette fonction sert à vérifier la syntaxe d'un email   
   */   
  function IsEmail($email)   
  {   
   $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";   
   return (eregi($pattern,$email)) ? true : false;   
  };   

  // formulaire envoyé, on récupère tous les champs.   
  $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';   
  $email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';   
  $objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';   
  $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';   

  // On va vérifier les variables et l'email ...   
  $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré   

  if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))   
  {   
   // les 4 variables sont remplies, on génère puis envoie le mail   
   $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";   

   // envoyer une copie au visiteur ?   
   if ($copie == 'oui')   
   {   
    $cible = $destinataire.','.$email;   
   }   
   else   
   {   
    $cible = $destinataire;   
   };   

   // Remplacement de certains caractères spéciaux   
   $message = str_replace("'","'",$message);   
   $message = str_replace("'","'",$message);   
   $message = str_replace(""",'"',$message);   
   $message = str_replace('<br>','',$message);   
   $message = str_replace('<br />','',$message);   
   $message = str_replace("<","<",$message);   
   $message = str_replace(">",">",$message);   
   $message = str_replace("&","&",$message);   

   // Envoi du mail   
   if (mail($cible, $objet, $message, $headers))   
   {   
    echo '<p>'.$message_envoye.'</p>'."\n";   
   }   
   else   
   {   
    echo '<p>'.$message_non_envoye.'</p>'."\n";   
   };   
  }   
  else   
  {   
   // une des 3 variables (ou plus) est vide ...   
   echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";   
  };   
 }; // fin du if (!isset($_POST['envoi']))   
?>



Merci :)

6 réponses

Alain_42 Messages postés 5413 Statut Membre 894
 
Bonsoir,

voir les commentaires:
<?php  
 /*  
  ********************************************************************************************  
  CONFIGURATION  
  ********************************************************************************************  
 */  
 // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule  
 $destinataire = 'damientaurand@quercypub.com';  

 // copie ? (envoie une copie au visiteur)  
 $copie = 'oui'; // 'oui' ou 'non'  

 // Messages de confirmation du mail  
 $message_envoye = "Votre message est bien parvenu à QuercyPUB !";  
 $message_non_envoye = "L'envoi du mail a échoué, vous pouvez toujours envoyer un courriel à damientaurand@quercypub.com";  

 // Messages d'erreur du formulaire  
 $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.html\">envoyer le formulaire</a>.";  
 $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que le courriel soit sans erreur.";  

 /*  
  ********************************************************************************************  
  FIN DE LA CONFIGURATION  
  ********************************************************************************************  
 */  
								////attention pas de ; après les } des if /else ou function
 // on teste si le formulaire a été soumis  
 //if (!isset($_POST['envoi']))   tu as nommé ton bouton submit  envoi2 !!
 if (!isset($_POST['envoi2']))  
 {  
  // formulaire non envoyé  
  echo '<p>'.$message_erreur_formulaire.'</p>'."\n";  
 }  
 else  
 {  
  /*  
   * cette fonction sert à nettoyer et enregistrer un texte  
   */  
  function Rec($text)  
  {  
   $text = trim($text); // delete white spaces after & before text  
   if (1 === get_magic_quotes_gpc())  
   {  
    $stripslashes = create_function('$txt', 'return stripslashes($txt);');  
   }  
   else  
   {  
    $stripslashes = create_function('$txt', 'return $txt;');  
   }  

   // magic quotes ?  
   $text = $stripslashes($text);  
   $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well  
   $text = nl2br($text);  
   return $text;  
  }  //pas de ; en fin de fonction

  /*  
   * Cette fonction sert à vérifier la syntaxe d'un email  
   */  
  function IsEmail($email)  
  {  
   $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";  
   return (eregi($pattern,$email)) ? true : false;  
  }  //pas de ; en fin de fonction

  // formulaire envoyé, on récupère tous les champs.  
  
  ////la aussi attention aux name donnés dans ton fromulaire
  $nom     = (isset($_POST['nom2']))     ? Rec($_POST['nom2'])     : '';  
  $email   = (isset($_POST['email2']))   ? Rec($_POST['email2'])   : '';  
  $objet   = (isset($_POST['objet2']))   ? Rec($_POST['objet2'])   : '';  
  $message = (isset($_POST['message2'])) ? Rec($_POST['message2']) : '';  

  // On va vérifier les variables et l'email ...  
  $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré  

  if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))  
  {  
   // les 4 variables sont remplies, on génère puis envoie le mail  
   $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";  

   // envoyer une copie au visiteur ?  
   if ($copie == 'oui')  
   {  
    $cible = $destinataire.','.$email;  
   }  
   else  
   {  
    $cible = $destinataire;  
   }  

   // Remplacement de certains caractères spéciaux  
   $message = str_replace("'","'",$message);  
   $message = str_replace("'","'",$message);  
   $message = str_replace("\"",'"',$message);  ////// la une erreur si "  entre deux " il faut l'echapper par un \
   $message = str_replace('<br>','',$message);  
   $message = str_replace('<br />','',$message);  
   $message = str_replace("<","<",$message);  
   $message = str_replace(">",">",$message);  
   $message = str_replace("&","&",$message);  

   // Envoi du mail  
   if (mail($cible, $objet, $message, $headers))  
   {  
    echo '<p>'.$message_envoye.'</p>'."\n";  
   }  
   else  
   {  
    echo '<p>'.$message_non_envoye.'</p>'."\n";  
   } 
  }  
  else  
  {  
   // une des 3 variables (ou plus) est vide ...  
   echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";  
  }  
 } // fin du if (!isset($_POST['envoi']))  
?>
0
TigerDTD Messages postés 934 Statut Membre 12
 
Ok, je vais essayer de voir ou sont tes commentaires ... :)

Ca marche après t'es sur ?
0
TigerDTD Messages postés 934 Statut Membre 12
 
Car en fait, je précise que j'ai copié collé ce script, je ne l'ai pas fait moi même, je n'en suis pas capable ... Du coup, je ne vois pas exactement ce qu'il faut changer.
0
TigerDTD Messages postés 934 Statut Membre 12
 
Alian, merci pour té réponse que je m'efforce de dechiffrer mais j'i pas pensé à un truc, par rapport ua referencement, peux tu supprimer mon adresse mail comme je l'ai fait et le destinataire, à savoir le n om de ma boite, que j'ai remplacé aussi par des "***" ...

Merci :)
0
TigerDTD Messages postés 934 Statut Membre 12
 
Ca marche nikel ...

Merci beaucoup ... :)

Comment puis-je configurer la page ou est marquée une fois le mail envoyé " votre message est bien parvenu à *** " ... et y mettre un bouton " revenir en arrière ou même à la page d'accueil ... "

Merci en tous cas, t'assures :)
0
Alain_42 Messages postés 5413 Statut Membre 894
 
voir lignes 16 et 107 à 110

<?php  
 /*  
  ********************************************************************************************  
  CONFIGURATION  
  ********************************************************************************************  
 */  
 // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule  
 $destinataire = 'damientaurand@quercypub.com';  

 // copie ? (envoie une copie au visiteur)  
 $copie = 'oui'; // 'oui' ou 'non'  

 // Messages de confirmation du mail  
 $message_envoye = "Votre message est bien parvenu à QuercyPUB !";  
 $message_non_envoye = "L'envoi du mail a échoué, vous pouvez toujours envoyer un courriel à damientaurand@quercypub.com"; 
	$retour='<p><a href="acceuil.html">Retour à l\'acceuil</a></p>'; //tu modifies le href pour atteindre la page voulue

 // Messages d'erreur du formulaire  
 $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.html\">envoyer le formulaire</a>.";  
 $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que le courriel soit sans erreur.";  

 /*  
  ********************************************************************************************  
  FIN DE LA CONFIGURATION  
  ********************************************************************************************  
 */  
								////attention pas de ; après les } des if /else ou function
 // on teste si le formulaire a été soumis  
 //if (!isset($_POST['envoi']))   tu as nommé ton bouton submit  envoi2 !!
 if (!isset($_POST['envoi2']))  
 {  
  // formulaire non envoyé  
  echo '<p>'.$message_erreur_formulaire.'</p>'."\n";  
 }  
 else  
 {  
  /*  
   * cette fonction sert à nettoyer et enregistrer un texte  
   */  
  function Rec($text)  
  {  
   $text = trim($text); // delete white spaces after & before text  
   if (1 === get_magic_quotes_gpc())  
   {  
    $stripslashes = create_function('$txt', 'return stripslashes($txt);');  
   }  
   else  
   {  
    $stripslashes = create_function('$txt', 'return $txt;');  
   }  

   // magic quotes ?  
   $text = $stripslashes($text);  
   $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well  
   $text = nl2br($text);  
   return $text;  
  }  //pas de ; en fin de fonction

  /*  
   * Cette fonction sert à vérifier la syntaxe d'un email  
   */  
  function IsEmail($email)  
  {  
   $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";  
   return (eregi($pattern,$email)) ? true : false;  
  }  //pas de ; en fin de fonction

  // formulaire envoyé, on récupère tous les champs.  
  
  ////la aussi attention aux name donnés dans ton fromulaire
  $nom     = (isset($_POST['nom2']))     ? Rec($_POST['nom2'])     : '';  
  $email   = (isset($_POST['email2']))   ? Rec($_POST['email2'])   : '';  
  $objet   = (isset($_POST['objet2']))   ? Rec($_POST['objet2'])   : '';  
  $message = (isset($_POST['message2'])) ? Rec($_POST['message2']) : '';  

  // On va vérifier les variables et l'email ...  
  $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré  

  if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))  
  {  
   // les 4 variables sont remplies, on génère puis envoie le mail  
   $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";  

   // envoyer une copie au visiteur ?  
   if ($copie == 'oui')  
   {  
    $cible = $destinataire.','.$email;  
   }  
   else  
   {  
    $cible = $destinataire;  
   }  

   // Remplacement de certains caractères spéciaux  
   $message = str_replace("'","'",$message);  
   $message = str_replace("'","'",$message);  
   $message = str_replace("\"",'"',$message);  ////// la une erreur si "  entre deux " il faut l'echapper par un \
   $message = str_replace('<br>','',$message);  
   $message = str_replace('<br />','',$message);  
   $message = str_replace("<","<",$message);  
   $message = str_replace(">",">",$message);  
   $message = str_replace("&","&",$message);  

   // Envoi du mail  
   if (mail($cible, $objet, $message, $headers))  
   {  
    echo '<p>'.$message_envoye.'</p><br /><br />'.$retour;  
   }  
   else  
   {  
    echo '<p>'.$message_non_envoye.'</p><br /><br />'.$retour;  
   } 
  }  
  else  
  {  
   // une des 3 variables (ou plus) est vide ...  
   echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";  
  }  
 } // fin du if (!isset($_POST['envoi']))  
?>
0
Tigerdtd
 
J'ai fait les rectifications mais ce que je me demande c'ai comment modifier cette page reparaît le message ...

Désolé pour les fautes orthographes mais j'écris depuis la reconnaissance vocale de l'iPhone 4S
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5413 Statut Membre 894
 
je ne comprend pas trop ce que tu veux dire.

C'est pas top la reconnaissance vocale !
0
Tigerdtd
 
Quand je teste le formulaire l'envoi marche y'a pas de soucis je reçois bien le mail. Mais ce que je ne comprends pas c'ai que quand j'ai envoyé le mail, une page Apparaît avec marqué le mail a bien été envoyé. Mais cette page est blanche et je voudrais pouvoir la modifier, y mettre des images par exemple et la faire s'ouvrir dans une nouvelle fenêtre.
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Voila en appelant une page accuse.php
<?php
			// ......
			///modifies cette partie la --------------------------
			// Envoi du mail  
		   if (mail($cible, $objet, $message, $headers))  
		   {  
			$$mail_env="ok";  
		   }  
		   else  
		   {  
			$mail_env="nok";  
		   } 
		   //on appelle la page accuse.php en lui passant par l'url le resultat de l'envoi du mail
		   //attention par contre il ne doit pas y avoir de code html avant cette ligne ni d'espace ou ligne vide devant <?php en début de script
		   header("Location:accuse.php?result=".$mail_env);
		   
		   /// --------------------------------------------------------
	  }  
	  else  
	  {  
	   // une des 3 variables (ou plus) est vide ...  
	   echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";  
	  }  
 } // fin du if (!isset($_POST['envoi'])) 
 
 ?>
 
 et la page accuse.php :
 
 <html>
 <!-- tu peux créer la page comme tu veux images etc-->
 <?php
 
 //on decode dans l'url le resultat de l'envoi du mail
if(isset($_GET['result'])){
	$result=htmlentities($_GET['result']); //securité
	if($result == "ok"){
		echo "Le mail a été envoyé ! "; //modifies si tu veux
	}elseif($result == "nok"){
		echo "Pb: Le mail n'a pas été envoyé !! ";
	}
}
?>
</html>
0
TigerDTD Messages postés 934 Statut Membre 12
 
Je regarde ça dès que je peux. Je te tiens au courant. MerciWyy
0