Formulaire PHP, problème d'envoi

Fermé
dan42 - 27 mars 2013 à 14:31
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 28 mars 2013 à 13:32
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);
?>



7 réponses

lionel-DIL Messages postés 1222 Date d'inscription lundi 25 juin 2012 Statut Membre Dernière intervention 7 août 2014 1 768
27 mars 2013 à 14:34
Bonjour,

Déjà, dans la <form>, tu as oublié un action= ainsi que method=
0
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
27 mars 2013 à 17:46
<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
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
27 mars 2013 à 23:20
remets nous le code modifié
0
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 mars 2013 à 13:32
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