PHP envoi d'un formulaire par email [Fermé]

tophe03 327 Messages postés lundi 24 janvier 2005Date d'inscription 14 avril 2010 Dernière intervention - 8 mai 2005 à 22:22 - Dernière réponse : Noviceman 222 Messages postés mercredi 4 août 2010Date d'inscription 2 mars 2016 Dernière intervention
- 15 août 2012 à 01:58
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
Afficher la suite 

10 réponses

exterminateur 4 Messages postés vendredi 8 juin 2007Date d'inscription 30 juillet 2007 Dernière intervention - 8 juin 2007 à 16:03
+17
Utile
1
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
Cette réponse vous a-t-elle aidé ?  
Tu pourais nousconvertir tout ca en source html stp , paske sur explorer et chrome ca marche pas et sur mozzila a moitié seulement ^^'
+2
Utile
1
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
même problème x)
rameur 136 Messages postés lundi 8 avril 2002Date d'inscription 21 janvier 2009 Dernière intervention - 14 mai 2005 à 17:59
+1
Utile
3
<form action="mailto:monadresse@monsite.fr" ...>
tophe03 327 Messages postés lundi 24 janvier 2005Date d'inscription 14 avril 2010 Dernière intervention - 14 mai 2005 à 18:37
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
kilian 8897 Messages postés vendredi 19 septembre 2003Date d'inscriptionContributeurStatut 20 août 2016 Dernière intervention - 14 mai 2005 à 18:45
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?
tophe03 327 Messages postés lundi 24 janvier 2005Date d'inscription 14 avril 2010 Dernière intervention > kilian 8897 Messages postés vendredi 19 septembre 2003Date d'inscriptionContributeurStatut 20 août 2016 Dernière intervention - 14 mai 2005 à 18:51
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
gryzzly 4645 Messages postés lundi 7 novembre 2005Date d'inscriptionContributeurStatut 29 avril 2015 Dernière intervention - 8 juin 2007 à 16:13
0
Utile
1
et vive le détérrage de posts de 2005 !
Noviceman 222 Messages postés mercredi 4 août 2010Date d'inscription 2 mars 2016 Dernière intervention - 15 août 2012 à 01:58
Pô grave ça peut servir, lol :)