Bonjour j'ai un problème avec ma page contact les mail sont bien envoyé mais le message ce retrouve à la place de l'objet du mail qui lui n'est pas envoyé. Si quelqu'un pouvez me donné un coup de main merci d'avance
Html
<div id="form">
        <form id="contact_form" name="form_contact" method="post" action="traitement.php"> 

            <p><label for="nom">Votre Nom</label> </p> 
            <p><input type="text" id="nom" name="nom" placeholder="Prénom et nom" required tabindex="1"/></p>
            
            <p><label for="email">Votre email</label></p> 
            <p><input type="text" id="email" name="email" placeholder="exemple@domain.com" required tabindex="2"/> </p>
            
            <p><label for="objet">Objet</label></p> 
            <p><input type="text" id="objet" name="objet" placeholder="L'objet de votre mail" required tabindex="3" /> </p>
            
            <p><label for="message">Votre message</label></p> 
            <p><textarea name="message" id="message" tabindex="4" placeholder="Votre mail"> </textarea> </p>
            
            <p><input type="submit" id="envoi" name="envoi" tabindex="5" value=""/></p>
        
        </form>
    </div>



php
<?php

	$destinataire = 'monmail@contact.fr';
 
	
	$copie = 'non'; // 'oui' ou 'non'
 
	
	$message_envoye = "<div class='msg'> Votre message nous est bien parvenu . Nous y répondrons dans les plus brefs délais. Pour retourner au site cliquez <a href="monsite/contact">ici</a></div>";
	$message_non_envoye = "<div class='msg'>L'envoi du mail a échoué, veuillez réessayer s'il vous plait ou utiliser une méthode traditionnelle.</div>";
 
	
	$message_erreur_formulaire = "<div class='msg'>Vous devez d'abord <a href="monsite/contact">envoyer le formulaire</a>.</div>";
	$message_formulaire_invalide = "<div class='msg'>Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.</div>";
 
		ini_set('sendmail_from', 'monmail@contact.fr'); 
 
		// on teste si le formulaire a été soumis
	if (!isset($_POST['envoi']))
	{
		// formulaire non envoyé
		echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
	}
	else
	{
				function Rec($text)
		{
			$text = trim($text); // supprime les espaces avant et après le texte
			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 = "MIME-Version: 1.0\r\n";
			$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
			$headers = 'From: '.$nom.' <'.$email.'>'."\r\n\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("&amp;","&",$message);
 
			// Envoi du mail
			if (mail($cible, $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 htmlentities($objet);
			echo '<p>'.$message_formulaire_invalide.'<a href="monsite/contact">Retour au formulaire</a></p>'."\n";
		}
	} // fin du if (!isset($_POST['envoi']))
?>

Ps: je suis héberger chez free
Modifié par slin (26 Mar 2013 - 14:58)
Il semble que c'est parce que tu ne précises pas l'objet lors de l'envoi. Tu mets:
// Envoi du mail
			if (mail($cible, $message, $headers)){
				echo '<p>'.$message_envoye.'</p>'."\n";
			}


Or, il semble qu'il faudrait plutôt mettre:
// Envoi du mail
			if (mail($cible, $objet, $message, $headers)){
				echo '<p>'.$message_envoye.'</p>'."\n";
			}
Bonjour,

Il y a des erreurs de syntaxe dans le fichier traitement.php,
-dans "$message_envoye" et dans "$message_erreur_formulaire", il faut remplacer les guillemets par des apostrophes A L'INTERIEUR DE la chaine, par exemple :
$message_envoye = "<div class='msg'> Votre message nous est bien parvenu . Nous y répondrons dans les plus brefs délais. Pour retourner au site cliquez <a href='monsite/contact'>ici</a></div>";
Voici le fichier "traitement.php" corrigé. Remplace les ... par ce qui convient Smiley cligne
<?php

	$destinataire = '...';
	$copie = 'non'; // 'oui' ou 'non'
	
	$message_envoye = "<div class='msg'> Votre message nous est bien parvenu . Nous y répondrons dans les plus brefs délais. Pour retourner au site cliquez <a href='monsite/contact'>ici</a></div>";
	$message_non_envoye = "<div class='msg'>L'envoi du mail a échoué, veuillez réessayer s'il vous plait ou utiliser une méthode traditionnelle.</div>";
	
	$message_erreur_formulaire = "<div class='msg'>Vous devez d'abord <a href='monsite/contact'>envoyer le formulaire</a>.</div>";
	$message_formulaire_invalide = "<div class='msg'>Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.</div>";
 
	ini_set('sendmail_from', '...'); 
 
		// on teste si le formulaire a été soumis
	if (!isset($_POST['envoi']))
	{
		// formulaire non envoyé
		echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
	}
	else
	{
		// 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 = "MIME-Version: 1.0\r\n";
			$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
			$headers .= 'From: '.$nom.' <'.$email.'>'."\r\n\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("&amp;","&",$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 4 variables (ou plus) est vide ...
			//echo htmlentities($objet);
			echo '<p>'.$message_formulaire_invalide.'<a href="...">Retour au formulaire</a></p>'."\n";
		}
	} // fin du if (!isset($_POST['envoi']))

	
	function Rec($text)
	{
		$text = trim($text); // supprime les espaces avant et après le texte
		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;
	}

?>
bonsoir je m'excuse de vous solliciter à nouveau mais les mails envoyés depuis safari et l'Ipad arrive très bien mais avec firefox et chrome je ne reçois rien du tout. Peut-être que le problème vient de free?
Voilà, je n'ai pas su attendre jusqu'à demain Smiley langue , je viens de tester sous Firefox (dernière version) et Google Chrome (dernière version) : AUCUN PROBLEME!