PHP envoi d'un formulaire par email

tophe03 Messages postés 327 Date d'inscription   Statut Membre Dernière intervention   -  
Noviceman Messages postés 222 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour

A ce que j'ai compris, pour envoyer un formulaire par mail, il vaut mieux utiliser php. Ce que j'ai essayé de faire.
Dans ma page, j'ai mis:

<form name="rapporter" action="mail_reservation.php" method="post">

et dans le fichier mail_reservation.php:

<?php

## Définitions des deux constantes
define('ADRESSE_WEBMASTER','iguane.cafe@wanadoo.fr');
define('SUJET','Réservation');

## Message qui vous sera envoyé
$message = "Raison sociale : ".$_POST['raison sociale']."\n\nCivilité : ".$_POST['civilite']."\n\nNom : ".$_POST['nom']."\n\nPrénom : ".$_POST['prenom']."\n\nAdresse : ".$_POST['adresse']."\n\nVille : ".$_POST['ville']."\n\nCode postal : ".$_POST['code postal']."\n\nPays : ".$_POST['pays']."\n\nMail : ".$_POST['email']."\n\nTéléphone : ".$_POST['telephone']."\n\nFax : ".$_POST['fax']."\n\nDate : ".$_POST['DatePrevDeb']."\n\nRepas : ".$_POST['repas']."\n\nHeure : ".$_POST['heure']."\n\nAdultes : ".$_POST['adultes']."\n\nEnfants : ".$_POST['enfants']."\n\nSalle : ".$_POST['Fumeur'];

## Appel de la fonction mail() afin d'envoyer un E-mail contenant les informations saisies par le visiteur
mail(ADRESSE_WEBMASTER,SUJET,$message,'From: '.ADRESSE_WEBMASTER);

?>

Mais ça marche pas. Pas de mail reçu, et quand je veux envoyer le mail, une boite de dialogue pour télécharger le fichier mail_reservation.php apparaît.

Quelqu'un peut il m'aider?

Merci
A+
Tophe

4 réponses

exterminateur Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   17
 
Pour ton ofrmulaire il faut modifier la ligne qui porte les expresssions en gras
form name="mail_form" method="post" action="traitement.php"
Il faut recupérer les informations de ton formulaire et les traiter. Donc tu dois créer une page nommée "traitement.php" et tu indiques à ton formulaire de faire appel à la page de traitemant. C'est cette page, une fois les infos traitées va les envoyer à ton drese.


Voici une methode simple pour envoyer des messages à partir de votre site.
C'est très simple. Mais votre hébergeur doit accepter du PHP et votre page doit est écrite en php.
voici un code deja pret d'emploi que je vais vous expliquer par la suie.

Voici le code php

<?php

$email_dest = "mon@adresse.com";

if ($_POST['envoi']) {

$message_remerciement = "Votre message a bien été envoyer et nous vous répondons dans un instant. MERCI";

// E-mail headers:
$headers ="MIME-Version: 1.0 \n";
$headers .="From: Robot_site<robot@domaine.com>\n";


$headers .="Content-Type: text/html; charset=iso-8859-1 \n";

$subject = "Une question au webmaster";

$partie_entete = "<html><head>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>
<body bgcolor=#FFFFFF>";

for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) {
$partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>";
}

if ($_POST['nbre_zone_email'] != 0) {
$partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>";
}

if ($_POST['nbre_zones_texte'] != 0) {
$partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>";
$partie_zone_texte = stripslashes($partie_zone_texte);
}

$fin = "</body></html>";

$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin;

// Send the e-mail
if (@!mail($email_dest,$subject,$sortie,$headers)) {
echo("Envoi du formulaire impossible");
} // Closing if !mail...

} // Closing if edit
?><html>
<head>
<title>Contactez le webmaster</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript"><!-- Hide script from older browsers
function verifSelection() {if (mail_form.champ1.value == "") {
alert("Champs vide")
return false
} if (mail_form.champ2.value == "") {
alert("Champs vide")
return false
} if (mail_form.zone_email.value == "") {
alert("champs mal remplit")
return false
}

invalidChars = " /:,;'"

for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters?
badChar = invalidChars.charAt(i)

if (mail_form.zone_email.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
mail_form.zone_email.focus()
return false
}
}

atPos = mail_form.zone_email.value.indexOf("@",1) // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}

if (mail_form.zone_email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}

periodPos = mail_form.zone_email.value.indexOf(".",atPos)

if (periodPos == -1) { // and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}

if (periodPos+3 > mail_form.zone_email.value.length) { // must be at least 2 characters after the
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}if (mail_form.zone_texte.value == "") {
alert("message vide")
return false
} } // Fin de la fonction

</script>
</head>

<body>
<form name="mail_form" method="post" action="<?=$PHP_SELF?>" onSubmit="return verifSelection()">
<div align="center"></div>
<p align="center">
<?php
if ($message_remerciement) {
echo("<font face=Verdana size=2>");
echo(stripslashes($message_remerciement));
echo("</p></body></html>");
exit();
}
?>
<table width="566" border="0" align="center">
<p align="center">
</p><tr>
<td><font face="Verdana" size="2">Votre Nom</font></td>
<td><input name="champ1" type="text"></td>
</tr><tr>
<td><font face="Verdana" size="2">Sejet du Message</font></td>
<td><input name="champ2" type="text"></td>
</tr><tr>
<td width><font face="Verdana" size="2">Votre adresse e_mail</font></td>
<td width><input name="zone_email" type="text"></td>
</tr><tr>
<td valign="top"><font face="Verdana" size="2">Votre message</font></td>
<td><textarea name="zone_texte" cols="50" rows="10"></textarea></td>
</tr><tr>
<td valign="top"><input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="2">
<input name="nbre_zones_texte" type="hidden" value="1">
<input name="nbre_zone_email" type="hidden" value="1">
<input name="titre_champ1" type="hidden" value="Votre Nom"><input name="titre_champ2" type="hidden" value="Sejet du Message"><input name="titre_email" type="hidden" value="Votre adresse e_mail"><input name="titre_zone" type="hidden" value="Votre message"></td>
<td><div align="center">
<input type="reset" name="Reset" value="Effacer">
<input type="submit" name="envoi" value="Envoyer">
</div></td>
</tr>
</table>
<div align="center"></div>
</form>
</body>
</html>


Tu recopie ce code que tu colles dans ton desgn et tu fais un essai. Mais il faut parametrer les parties en GRAS celon ton cas.

Si tu rencontre un probleme ecris-moi je vais t'aider. Mon mail est : macrocreation@gmail.com
17
Noobenhtml
 
Tu pourais nousconvertir tout ca en source html stp , paske sur explorer et chrome ca marche pas et sur mozzila a moitié seulement ^^'
0
LEC yomi
 
bas moi je vais faire pire depuis 2010 haha non sans blague je remplace robot@domaine.com par mon adresse ou je laisse comme c'est,si quel qu'un le c'est ?

désole d'avoir réveiller les message mort je suis passe chez umbrella corporation pour leur virus D du message qui reviens 3 ans plus tard XD
2
varquesse
 
même problème x)
0
rameur Messages postés 135 Date d'inscription   Statut Membre Dernière intervention   21
 
<form action="mailto:monadresse@monsite.fr" ...>
1
tophe03 Messages postés 327 Date d'inscription   Statut Membre Dernière intervention   5
 
Salut

ça je connait, mais cela fait intervenir outlook, en plus le mail reçu n'est pas top, il faut déchiffrer.

a+
Tophe
0
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
et quand je veux envoyer le mail, une boite de dialogue pour télécharger le fichier mail_reservation.php apparaît.

Tu es sûr que ton serveur peut interpreéter le php?
0
tophe03 Messages postés 327 Date d'inscription   Statut Membre Dernière intervention   5 > kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention  
 
salut

non il peut pas.
Je cherche un moyen de contourner le problème.
Cf discussion http://www.commentcamarche.net/forum/affich-1518829-php

a+
Tophe
0
gryzzly Messages postés 4608 Date d'inscription   Statut Contributeur Dernière intervention   1 335
 
et vive le détérrage de posts de 2005 !
0
Noviceman Messages postés 222 Date d'inscription   Statut Membre Dernière intervention   7
 
Pô grave ça peut servir, lol :)
0