PHP envoi d'un formulaire par email

Fermé
tophe03 Messages postés 327 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 14 avril 2010 - 8 mai 2005 à 22:22
Noviceman Messages postés 222 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 2 mars 2016 - 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
A voir également:

4 réponses

exterminateur Messages postés 4 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 30 juillet 2007 17
8 juin 2007 à 16:03
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
Tu pourais nousconvertir tout ca en source html stp , paske sur explorer et chrome ca marche pas et sur mozzila a moitié seulement ^^'
0
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
même problème x)
0
rameur Messages postés 135 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 21 janvier 2009 21
14 mai 2005 à 17:59
<form action="mailto:monadresse@monsite.fr" ...>
1
tophe03 Messages postés 327 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 14 avril 2010 5
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
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
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?
0
tophe03 Messages postés 327 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 14 avril 2010 5 > kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016
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
0
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 330
8 juin 2007 à 16:13
et vive le détérrage de posts de 2005 !
0
Noviceman Messages postés 222 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 2 mars 2016 7
15 août 2012 à 01:58
Pô grave ça peut servir, lol :)
0