[php] envoi de mail formulaire.

touf -  
 tewf -
Bonjour,
Bonjour,
j'ai créé un formulaire en HTML avec les champs nom*, prénom,mail*,sujet,telephone et commentaire*(*étant les champs obligatoire).
A sa j'ai rajouter un fichier javascript qui controle la validation des champs du formulaire,
mon probleme concerne l'envoi des données,

pouvez vous m'aider ?
merci

voici mon fichier .php
<?php

$formNom = $_POST['nom'];
$formPrenom = $_POST['prenom'];
$formMail = $_POST['mail'];
$formSujet = $_POST['sujet'];
$formTel = $_POST['tel'];
$formMessage = $_POST['message'];

$msg="\nNom : ".$formNom."\nPrenom : ".$formPrenom."\nEmail : ".$formMail."\nSujet : ".$formSujet."\nTel : ".$formTel."\nMessage : ".$formMessage."\n";

$entete = "From: ".$formMail."\nContent-Type: text/html; charset=iso-8859-1";
// Envoi du mail
mail($formSujet,$msg,$entete);

header('location:confirmation.htm');
?>
A voir également:

41 réponses

rasta67
 
salut,
ton mail ne s'envoie pas ??
tu as bien précisé ton serveur smtp dans php.ini ??
0
bibi675 Messages postés 387 Date d'inscription   Statut Membre Dernière intervention   20
 
Euh, ou est le problème ? ^^
0
touf
 
désolé pour le double post y eu un un pti bug
je ne reçoi pas les donné et la redirection vers confirmation.htm fonctionne pas
jai une erreur qui s'affiche au ligne 14 et 16
0
touf
 
j'ai modifier mon code par contre je reçoi bien le mail mais pas les donnée remplis

<?php 

$formNom = $_POST['nom']; 
$formPrenom = $_POST['prenom']; 
$formMail = $_POST['mail']; 
$formSujet = $_POST['sujet']; 
$formTel = $_POST['tel']; 
$formMessage = $_POST['message']; 


$email="XXX@free.fr"; 
$sujet="$formSujet"; 
$message="Nom : \n".$formNom."\n\n"; 
$message.="Prénom : \n $formPrenom\n\n"; 
$message.="Email : \n $formMail \n\n"; 
$message.="Téléphone : \n $formTel\n\n"; 
$message.="Message : \n $formMessage\n"; 

mail($email,$sujet,$message); 

header("Location:confirmation.htm");
?> 
0

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

Posez votre question
rasta67
 
vérifie si tes variables $message... sont bien remplies avec un echo...
0
touf
 
c'est à dire , je débute en PHP
mon fichier .php contient le code si dessus, je recoi le mail mais les données rempli dans le formulaire
0
rasta67
 
<?php

$formNom = $_POST['nom'];
$formPrenom = $_POST['prenom'];
$formMail = $_POST['mail'];
$formSujet = $_POST['sujet'];
$formTel = $_POST['tel'];
$formMessage = $_POST['message'];

echo("Message:".$message);

$email="XXX@free.fr";
$sujet="$formSujet";
$message="Nom : \n".$formNom."\n\n";
$message.="Prénom : \n $formPrenom\n\n";
$message.="Email : \n $formMail \n\n";
$message.="Téléphone : \n $formTel\n\n";
$message.="Message : \n $formMessage\n";

mail($email,$sujet,$message);

header("Location:confirmation.htm");
?>

et vérifie si dans ta page html il t'a affiché le message... tu recuperes peu etre pas correctement tes données _POST
0
touf
 
fonctionne toujour pas
je recoi bien le mail mais toujour pas de donnée de plus j'ai le message d'erreur suivant:

Warning: Cannot modify header information - headers already sent by (output started at /mnt/103/sdb/d/9/XXX/formu.php:10) in /mnt/103/sdb/d/9/XXXX/formu.php on line 22

merci de votre aide
0
rasta67
 
essaye avec un javascript:location href="confirmation.htm" ou quelque chose comme ça...
j'ai pas fait de php depuis longtemps...

sinon si il t'ecrit pas ton mail sur la page c'est que tu as pas correctement fais ton POST...

ton formulaire tu as bien type="POST" avec la bonne redirection ?
0
touf
 
 <form action="formu.php" method=POST enctype="text/plain" name="formulaire">


le formulaire est bon jpense, c'est juste qu'il recupere pas les donné comme tu dit....
0
rasta67
 
ah oui là ca se gate !!
verifie que les champs s'appellent bien 'nom' etc...
après ça sans voir le code je peux pas trop dire
0
touf
 
l'email est bien envoyer , avec la redirection vers confirmation.htm mais le mail est vide :

Objet: [Aucun sujet]

Nom :


Prénom :


Email :


Téléphone :


Message :




<input name="nom" size="30" />
<input name="prenom" size="30" />
<input name="mail" size="30" />
<input name="sujet" size="30" />
<input name="tel" size="30" />
<textarea name="message" rows="6" wrap="virtual" cols="30"></textarea>



<?php 

$formNom = $_POST['nom']; 
$formPrenom = $_POST['prenom']; 
$formMail = $_POST['mail']; 
$formSujet = $_POST['sujet']; 
$formTel = $_POST['tel']; 
$formMessage = $_POST['message']; 


$email="tewfik.k95@free.fr"; 
$sujet="$formSujet"; 
$message="Nom : \n".$formNom."\n\n"; 
$message.="Prénom : \n $formPrenom\n\n"; 
$message.="Email : \n $formMail \n\n"; 
$message.="Téléphone : \n $formTel\n\n"; 
$message.="Message : \n $formMessage\n"; 

mail($email,$sujet,$message); 

header("Location:confirmation.htm"); 

?> 
0
rasta67
 
ta feuille est 'submittée' ???

ton code php est-il dans la même page que ton formulaire ??
0
touf
 
mon formulaire est bien submité
<input type="submit" name="submit" value="Valider" onClick="javascript:return verif();">


mon code php est dan une feuille externe et appelé par :
<form action="formu.php" method=POST enctype="text/plain" name="formulaire">
0
rasta67
 
alors là bizzare
difficile à dire sans voir le code en entier

dans le onlick forçe le submit en javascript dans ta fonction verif()
0
Utilisateur anonyme
 
 <form action="formu.php" method=POST enctype="text/plain" name="formulaire">

<input type="submit" name="submit" value="Valider" onClick="javascript:return verif();">


il y a ceux qu'il faut je crois, mon code PHP est dans une feuille externe , formu.php
0
touf
 
 <form action="formu.php" method=POST enctype="text/plain" name="formulaire">

 <input type="submit" name="submit" value="Valider" onClick="javascript:return verif();">


j'ai une feuille externe contenant le PHP, formu.php
0
rasta67
 
au lieu de mettre un bouton type submit, mets un bouton 'normal' et tu fais le submit (document.Forms["formulaire"].submit(); je crois) dans ta fonction verif()...
essaye je pense que ça vient de l'évenement onCLick et le submit en conflit...
0
touf
 
ok merci désolé des post sa bug ché moi
0
touf
 
fonctionne toujour pas;

mon formu.php :
<?php 

$formNom = $_POST['nom']; 
$formPrenom = $_POST['prenom']; 
$formMail = $_POST['mail']; 
$formSujet = $_POST['sujet']; 
$formTel = $_POST['tel']; 
$formMessage = $_POST['message']; 


$email="xxxxx@free.fr"; 
$sujet="$formSujet"; 
$message="Nom : \n".$formNom."\n\n"; 
$message.="Prénom : \n $formPrenom\n\n"; 
$message.="Email : \n $formMail \n\n"; 
$message.="Téléphone : \n $formTel\n\n"; 
$message.="Message : \n $formMessage\n"; 

mail($email,$sujet,$message); 

header("Location:confirmation.htm"); 

?> 



mon formulaire html:
 <form action="formu.php" method=POST enctype="text/plain" name="formulaire">
<input name="nom" size="30" />
<input name="prenom" size="30" />
<input name="mail" size="30" />
<input name="sujet" size="30" />
<input name="tel" size="30" />
<textarea name="message" rows="6" wrap="virtual" cols="30"></textarea>
<input type="submit" name="submit" value="Valider" onClick="javascript:return verif();">


et mon fichier javascript:
function verif() 
{ 
	var nom = document.formulaire.nom.value;
	if(document.formulaire.nom.value == "")
	{
		alert ('Veuillez entrer votre nom');
		document.formulaire.nom.focus();
		return false;
	}
	else
	if(document.formulaire.mail.value == "") {
  		alert("Veuillez entrer votre adresse electronique");
  		document.formulaire.mail.focus();
  		return false;
 	}
 	else
	if(document.formulaire.mail.value.indexOf('@') == -1) {
  		alert("Ce n'est pas une adresse electronique valide, verifiez la svp");
  		document.formulaire.mail.focus();
  		return false;
 	}
 	if(document.formulaire.message.value == "")
	{
  		alert("Veuillez entrer votre message");
  		document.formulaire.message.focus();
  		return false;
 	}
	else {return true;}

}


quelqu'un connai la solution , je recoi bien le mail mais je ne recoi pas pas le contenu rempli dans le formulaire.
merci
0