[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
 
essaye ça :

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="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 ;
}

if(document.formulaire.mail.value == "") {
alert("Veuillez entrer votre adresse electronique");
document.formulaire.mail.focus();
return ;
}

if(document.formulaire.mail.value.indexOf('@') == -1) {
alert("Ce n'est pas une adresse electronique valide, verifiez la svp");
document.formulaire.mail.focus();
return ;
}
if(document.formulaire.message.value == "")
{
alert("Veuillez entrer votre message");
document.formulaire.message.focus();
return ;
}

document.formulaire.submit();

}
0
rasta67
 
pardon plutot ça...

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:

<script language=javascript>

function verif()
{
var nom = document.formulaire.nom.value;
if(document.formulaire.nom.value == "")
{
alert ('Veuillez entrer votre nom');
document.formulaire.nom.focus();
return ;
}

if(document.formulaire.mail.value == "") {
alert("Veuillez entrer votre adresse electronique");
document.formulaire.mail.focus();
return ;
}

if(document.formulaire.mail.value.indexOf('@') == -1) {
alert("Ce n'est pas une adresse electronique valide, verifiez la svp");
document.formulaire.mail.focus();
return ;
}
if(document.formulaire.message.value == "")
{
alert("Veuillez entrer votre message");
document.formulaire.message.focus();
return ;
}

document.formulaire.submit();

}

</script>

<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="button" name="btn" value="Valider" onClick="verif();">
0
touf
 
c'eest toujour pareil la verif javascript fonctionne , lenvoi du mail fonctionne mais le contenu saisi n'est pas dan le mail
merci quan meme pour ton aide
0
bibi675 Messages postés 387 Date d'inscription   Statut Membre Dernière intervention   20
 
<?php 

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

$email = "xxxxx@free.fr"; 
$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"; 

if (mail($email,$formSujet,$message)) {
    echo "Email envoyé :<br>";
    echo "Sujet : <b>".$formSujet."</b><br>";
    echo "Message : <b>".$message."</b><br>";
} else {
    echo "Erreur lors de l'envoie du mail !";
}
// header("Location: confirmation.htm"); <-- Pas de header après un echo.

?>

Essayes ça et dis moi ce que ça retourne.
0

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

Posez votre question
touf
 
bonsoir merci pour ta reponse
l'envoi foncionne correctement
je recoi le mail, par contre, dans le corp du mail il n'y a toujour pas les donnée saisie
:-(
0
touf
 
j'ai l'impression qu'il y a une erreur de syntaxe ici
$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"; 
0
touf
 
petit up ;-(
0
bibi675 Messages postés 387 Date d'inscription   Statut Membre Dernière intervention   20
 
Qu'a retourné mon script ? Fait un copier coller de la page du navigateur stp. Sinon, il n'y a aucune erreur de syntaxe
0
touf
 
bonjour merci pour ton aide

alor avec ton code , j'ai sa dans le navigateur :

Email envoyé :
Sujet : 
Message : Nom : Prénom : Email : Téléphone : Message : 


et dans le mail (toujour pas de contenu):
Nom : 


Prénom : 


Email : 
 

Téléphone : 


Message : 
0
touf
 
peut etre un conflit avec le javascript ! j'ai tester un formulaire php que j'ai trouver sur le net sans controle des champs en js , sa a fonctionner
0
bibi675 Messages postés 387 Date d'inscription   Statut Membre Dernière intervention   20
 
Essaye de tester toi-même ton script sans le Javascript alors.
0
rey
 
vous pouvez m'aider, mysql ne se lance pas par contre l'apache fonctionne parfaitement,t
0
touf
 
j'ai désactiver le javascript, sa vien pas de la
c'est un probleme au niveau de la récup des donnés, mais ou ?? .-)
0
touf
 
c'est résolu j'avais inversé betement le "method" et le "action"

bon code
<form method="post" action="formu.php" enctype="text/plain" name="formulaire">


mauvais code
<form action="formu.php" method="post" enctype="text/plain" name="formulaire">


O_o merci a tous

pour ceux que sa interesse voila le bon code PHP:

<?php 

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


$email="votre-email"; 
$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:votre-page-de-confirmation-d'envoi.htm"); 

?> 
0
touf
 
j'ai parler trop vite sa a fonctionner 2 fois et hop plus rien j'ai du changer le code alor qu'il été bon

je rapel mon probleme je ercoi pas les dooné rempli dans le formulaire, je recoi bien le mail mais le contenu rempli dans le formulaire
le javascript fonctionne bien

le formulaire html :
<code>
<form method="post" action="formu.php" enctype="text/plain" name="formulaire">
<input type="text" name="nom" size="30" />
<input type="text" name="prenom" size="30" />
<input type="text" name="mail" size="30" />
<input type="text" name="sujet" size="30" />
<input type="text" name="tel" size="30" />
<textarea name="message" rows="6" wrap="virtual" cols="30">
0
touf
 
j'ai parler trop vite sa a fonctionner 2 fois et hop plus rien j'ai du changer le code alor qu'il été bon

je rapel mon probleme je ercoi pas les dooné rempli dans le formulaire, je recoi bien le mail mais le contenu rempli dans le formulaire
le javascript fonctionne bien

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


le javascript qui controle les champs , jave.js:
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;}

}


et enfin le formu.php :
<?php 

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


$email = "xxxx@free.fr"; 
$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"); 

?> 


a savoir que le javascript et le php sont des fichiers externes

merci de votre aide
0
touf
 
pti up svp c important

please
0
tewf
 
pti up pour le retour de mail vide
0
tupa
 
il faut t'ecrire le script javascript avant la balise html
0
tewf
 
le javascript est un fichier externe
donc el est apeler dan le HTML
<script language="javascript" src="jave.js" type="text/javascript"></script>

avant le body
il fonctionne correctement le probleme vien de la recuperation des donné dan le PHP, enfin jcroi
0