Formulaire PHP, problème d'envoi

dan42 -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,

Lorsque l'on clique sur le bouton envoi de mon formulaire, rien ne se passe. Je ne recoi rien sur mon Email.

Merci de votre aide.

Voici le Code dans la Page Html :

<div class="contact-form-holder">
<form id="contact-form">
<div class="form-input-half-left form-input-border">
<div class="form-input-background opacity_2"></div>
<input id="name" type="text" name="name" value="name *"/>
</div>
<div class="form-input-half-right form-input-border">
<div class="form-input-background opacity_2"></div>
<input id="email" type="text" name="email" value="email *"/>
</div>
<div class="form-input-large form-input-border">
<div class="form-input-background opacity_2"></div>
<input id="phone" type="text" name="phone" value="phone *"/>
</div>
<div class="form-input-textarea form-input-border">
<div class="form-input-background opacity_2"></div>
<textarea id="message" name="message">message *</textarea>
</div>
<div id="response-form">
<p>Message envoyé! Merci!</p>
<span id="form-warning">Champ Obligatoire (*)</span>
<span id="server-error"></span>
</div>
<div class="form-buttons">
<div id="form-reset">
<p>SUPPR</p>
</div>
<div id="form-send" data-sending-txt="ENVOI...">
<p>ENVOI</p>

Et le code du fichier PHP :

<?php
$senderName = $_POST['senderName'];
$senderEmail = $_POST['senderEmail'];
$senderPhone = $_POST['senderPhone'];
$senderMessage = mysql_escape_string($_POST['senderMessage']);
$siteName = "mon site";
$to = "mon mail";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: " . $siteName ." \n";
$headers .= "Reply-To: " . $senderEmail . "\n\n";
$toSubject = "Message from $senderName via $siteName";
$emailBody = "<strong>From</strong>: $senderName <br />
<strong>Email</strong>: $senderEmail <br />
<strong>Phone</strong>: $senderPhone <br /> <br />
<strong>Message</strong>: <br /><br />
". nl2br($senderMessage);
$message = $emailBody;
$okMsg = "";
if( $to != "mon mail" )
{
$ok = mail($to, $toSubject, $message, $headers);
}
else{
$ok = false;
$okMsg = "Please change the '" . $to . "' to your own email address!";
}
if($ok){
$okMsg = "";
}
else{
if( $okMsg != "" )$okMsg = "SERVER BUSY, TRY AGAIN LATER! THANK YOU!";
}
$result = array(
'result' => $ok,
'msg' => $okMsg);
echo json_encode($result);
?>

A voir également:

7 réponses

lionel-DIL Messages postés 1222 Date d'inscription   Statut Membre Dernière intervention   1 768
 
Bonjour,

Déjà, dans la <form>, tu as oublié un action= ainsi que method=
0
dan42
 
Re-Bonjour,

Dans le <form>, mais ou exactement je suis un peu novice, et est ce que je doit rajouter autre chose.

Merci
0
Alain_42 Messages postés 5413 Statut Membre 894
 
<div class="contact-form-holder">
<form id="contact-form">


<div class="contact-form-holder">
<form id="contact-form" method="post" action="" > 


dans action= tu mets le nom du script php qui doit être appelé

de plus je ne vois pas le bouton <input type="submit" pour l'envoi du formulaire
<div id="form-send" data-sending-txt="ENVOI...">
<p>ENVOI</p>


<div id="form-send" data-sending-txt="ENVOI...">
<p><input type="submit" name="envoi" value="ENVOI" /></p> 
0
Dan42
 
Merci alain_42

J'ai fait les modifs que tu m'avais dit. Mais cela ne fonctionne toujours pas il me met une erreur. "Null"

Je vois pas quoi faire.

Merci de ton aide.
0

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

Posez votre question
Alain_42 Messages postés 5413 Statut Membre 894
 
remets nous le code modifié
0
dan42
 
Bonjour,

Voila les codes avec les modifs :

Merci de votre aide.

<div class="contact-form-holder">
<form id="contact-form" method="post" action="../../php/contact_synergy.php">
<div class="form-input-half-left form-input-border">
<div class="form-input-background opacity_2"></div>
<input id="name" type="text" name="name" value="name *"/>
</div>
<div class="form-input-half-right form-input-border">
<div class="form-input-background opacity_2"></div>
<input id="email" type="text" name="email" value="email *"/>
</div>
<div class="form-input-large form-input-border">
<div class="form-input-background opacity_2"></div>
<input id="phone" type="text" name="phone" value="phone *"/>
</div>
<div class="form-input-textarea form-input-border">
<div class="form-input-background opacity_2"></div>
<textarea id="message" name="message">message *</textarea>
</div>
<div id="response-form">
<p>Message envoyé! Merci!</p>
<span id="form-warning">Champ Obligatoire (*)</span>
<span id="server-error"></span>
</div>
<div class="form-buttons">
<div id="form-reset">
<p>SUPPR</p>
</div>
<div id="form-send" data-sending-txt="ENVOI...">
<p><input type="submit" name="envoi" value="ENVOI" /></p>
</div>
</div>
</form>
</div>
</div>
</div>
</div>

<?php
$senderName = $_POST['senderName'];
$senderEmail = $_POST['senderEmail'];
$senderPhone = $_POST['senderPhone'];
$senderMessage = mysql_escape_string($_POST['senderMessage']);

$siteName = "mon site";
$to = "mon mail";

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

$headers .= "From: " . $siteName ." \n";
$headers .= "Reply-To: " . $senderEmail . "\n\n";

$toSubject = "Message from $senderName via $siteName";
$emailBody = "<strong>From</strong>: $senderName <br />
<strong>Email</strong>: $senderEmail <br />
<strong>Phone</strong>: $senderPhone <br /> <br />
<strong>Message</strong>: <br /><br />
". nl2br($senderMessage);
$message = $emailBody;

$okMsg = "";
if( $to != "mon mail" )
{
$ok = mail($to, $toSubject, $message, $headers);
}
else{
$ok = false;
$okMsg = "Please change the '" . $to . "' to your own email address!";
}

if($ok){
$okMsg = "";
}
else{
if( $okMsg != "" )$okMsg = "SERVER BUSY, TRY AGAIN LATER! THANK YOU!";
}

$result = array(
'result' => $ok,
'msg' => $okMsg);

echo json_encode($result);
?>
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Voir commentaires
<div class="contact-form-holder">
<form id="contact-form" method="post" action="../../php/contact_synergy.php">
		<div class="form-input-half-left form-input-border">
			
			<div class="form-input-background opacity_2"></div><!-- je ne comprend pas trop l'enchainement de tes div ?? -->
			<!-- onfocus="this.value='';" c'est pour effacer ce qu'il y a dans l'input qd on clique dedans -->
				<input id="name" type="text" name="name" value="name *" onfocus="this.value='';" />
			</div>
			<div class="form-input-half-right form-input-border">
			<div class="form-input-background opacity_2"></div>
				<input id="email" type="text" name="email" value="email *" onfocus="this.value='';" />
			</div>
			<div class="form-input-large form-input-border">
			<div class="form-input-background opacity_2"></div>
				<input id="phone" type="text" name="phone" value="phone *" onfocus="this.value='';" />
			</div>
			<div class="form-input-textarea form-input-border">
			<div class="form-input-background opacity_2"></div>
				<textarea id="message" name="message"  onfocus="this.value='';" >message *</textarea>
			</div>
			<div id="response-form">
			<!-- 
			la tu mets message envoyé alors que le formulaire n'a pas encore été posté !!
			<p>Message envoyé! Merci!</p> -->
			<span id="form-warning">Champ Obligatoire (*)</span>
			<span id="server-error"></span>
			</div>
			<div class="form-buttons">
			<div id="form-reset">
			<p><input type="reset" name="anuler" value="EFFACER" /></p>
			</div>
			<div id="form-send" data-sending-txt="ENVOI...">
				<p><input type="submit" name="envoi" value="ENVOI" /></p>
			</div>
		</div>
	</form>
</div>
</div>
</div>
</div>






<?php
if(isset($_POST['envoi'])){
	//le formulaire a été posté on recupère les valeurs des input
	//ATTENTION il faut que dans $_POST['...'] tu ait le name correspondant au champ a recupérer
	//toi tu vait mis senderName alors que dans ton formulaire tu as name
	$senderName = htmlentities($_POST['name']);
	$senderEmail = htmlentities($_POST['email']);
	$senderPhone = htmlentities($_POST['phone']);
	//c'est bien d'avoir pensé à sécuriser, mais tu ne peux mettre mysql_real.... que si tu as fait une connexion à une BDD
	//fait avec htmlentities
	//$senderMessage = mysql_escape_string($_POST['message']);
	$senderMessage = htmlentities($_POST['message']);

	$siteName = "mon site";
	$to = "mon mail";
	//le FROM doit etre une adresse mail et la tienne connue de ton serveur, c'est le serveur qui envoi le mail, pas l'utilisateur
	$headers = "From: <".$siteName.">" .$to."\r\n";
	$headers .= "Reply-To: ".$senderEmail."\r\n";
	$headers .= "MIME-Version: 1.0"."\r\n";
	$headers .= "Content-type: text/html; charset=iso-8859-1"."\r\n";
	
	//$headers .= "From: " . $siteName ." \n";
	



	$toSubject = "Message from $senderName via $siteName";
	$emailBody = "<strong>From</strong>: $senderName <br />
	<strong>Email</strong>: $senderEmail <br />
	<strong>Phone</strong>: $senderPhone <br /> <br />
	<strong>Message</strong>: <br /><br />
	". nl2br($senderMessage);
	$message = $emailBody;

	$okMsg = "";
	//la pour autoriser l'envoi du mail tu testes si $to n'est pas égal à ton mail, hors ligne 60 tu charges $to avec ton mail, donc cette condition ne sera JAMAIS possible
	$env_mail = mail($to, $toSubject, $message, $headers);
	//le script php va ouvrir une nouvelle page dans laquelle les messages résultat d'envoi du mail seront écrits
	if($env_mail){
		echo "Merci le mesage a bien été envoyé ";
	}else{
	
		echo "SERVER BUSY, TRY AGAIN LATER! THANK YOU!";;
	}
	/*
	if( $to != "mon mail" )
	{
	$ok = mail($to, $toSubject, $message, $headers);
	}
	else{
	$ok = false;
	$okMsg = "Please change the '" . $to . "' to your own email address!";
	//pourquoi  ? c'est bien toi qui reçoit le mail
	}

	if($ok){
	$okMsg = "";
	}
	else{
	if( $okMsg != "" )$okMsg = "SERVER BUSY, TRY AGAIN LATER! THANK YOU!";
	}
	// ???
	$result = array(
	'result' => $ok,
	'msg' => $okMsg);

	echo json_encode($result); // ????
	*/
}
?>
0