Bonjour à tous,
je suis nouveau dans cette communauté et j'ai besoin de vos lumières pour un formulaire d'envoi mail.
voici mon formulaire html:

<div id="formul">
		<form action="/traitement.php" id="formul" method="post">
			<fieldset>

		
					<input autofocus="autofocus" class="text" id="name" name="name" placeholder="Nom" required="required" type="text" />
		
					<input autofocus="autofocus" class="text" id="prenom" name="prenom" placeholder="Prénom" type="text" required="required" />
			
					<input autofocus="autofocus" class="text" id="tel" name="tel" placeholder="Téléphone" type="tel" required="required" />
			
					<input autofocus="autofocus" class="text" id="email" name="email" placeholder="Email" required="required" type="email"  />
			
					<input autofocus="autofocus" class="text" id="sujet" name="sujet" placeholder="Sujet" type="text" />
			
					<textarea  autofocus="autofocus" class="text" id="message" name="message" placeholder="Votre Message" required="required"></textarea>
			
					<button id="envoyez" type="submit">Envoyez</button>
				
			</fieldset>
		</form>



et mon php correspndant:

<?php 	include '/theme/enigma/header.php';?>
		<?php include '/theme/enigma/core/menu/default_menu_walker.php';?>
		<?php include '/theme/enigma/page.php';?>
		
<?php 

if(isset($_POST['name']) && isset($_POST['prenom']) && isset($_POST['email']) && isset($_POST['tel']) && isset($_POST['message'])){
$destinataire="machin@gmail.com";
$recipient="publidif@gmail.com";
$name=$_POST['name'];
$prenom=$_POST['prenom'];
$tel=$_POST['tel'];
$email=$_POST['email'];
$message=$_POST['message'];

mail($destinataire, $name,$prenom ,$email ,$tel , $message,"From:".$_POST['name']."\r\n".$_POST['email']."\r\n");
if(mail($destinataire,$name ,$prenom ,$email ,$tel ,$message )){
	echo'<div id="messagerie">
	<h1>Message Envoyé</h1>
	<p>Nous nous engageons à vous répondre dans les meilleurs délais.</p>
	</div>';
	}
	else
	{
echo'<div id="messagerie">
<h1>Nous sommes désolés, une erreur est survenue lors de l\'envoi de votre formulaire par email.</h1>
</div>';
	}
}

else
{
	echo '<div id="messagerie">
	<h1>Nous sommes désolés, une erreur est survenue lors de l\'envoi de votre formulaire par email.</h1>
	</div>';
}


?>
<?php include '/theme/enigma/footer.php'; ?>



mais quand j'essaie le formulaire la réponce que j'obtiens correspond à la seconde condition de mon php cad:
Nous sommes désolés, une erreur est survenue lors de l\'envoi de votre formulaire par email.
une idée d'où peut venir mon problème?
Bonjour,

J'ai jeté un coup d'oeil rapide à ton code et je pense que cette partie te pose problème:

mail($destinataire, $name,$prenom ,$email ,$tel , $message,"From:".$_POST['name']."\r\n".$_POST['email']."\r\n");

if(mail($destinataire,$name ,$prenom ,$email ,$tel ,$message )){

/* instructions si tout va bien */

}
else
{

/* message d'erreur */
}


D'une part ta fonction mail est mal formée et n'accepte pas tant de paramètres. Php.net - La fonction mail

D'autre part, attends-toi à ce que ton mail soit envoyé deux fois. Il vaut mieux attribuer le résultat de la fonction mail() à une variable et de tester par la suite cette variable comme ceci:
$_fct_mail = mail();

if($_fct_mail !== false){

/* instructions si tout va bien */

}
else
{

/* message d'erreur */
}
unset($_fct_mail);


Une fois ces points corrigés, ça devrait aller beaucoup mieux.

Bonne continuation. Smiley smile

PS : J'ai l'impression que ta première condition (if(isset($_POST['name']) &&) n'est pas fermée ou elle est fermée au mauvais endroit. Peux-tu y regarder ?
Modifié par Greg_Lumiere (01 Aug 2016 - 13:45)
merci pour ta lumière greg.La condition (if(isset($_POST['name']) &&) est bien fermée mais l'astuce de tes deux lignes de codes fonctionnent parfaitement.
Merci à toi
cmdl a écrit :
La condition [...] est bien fermée
Ha oui, autant pour moi je n'avais pas bien vu !

De rien et bonne journée. Smiley ravi