Rechercher : dans
Par :

PHP envoi d'un formulaire par email

Dernière réponse le 8 jun 2007 à 16:13:18 tophe03, le 8 mai 2005 à 22:22:05 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « PHP envoi d'un formulaire par email » dans :
[Webmaster] Un formulaire de contact pour votre site VoirCe formulaire permet d'avoir une page pour être contacté sur son site, sans utiliser de logiciel de messagerie. La personne qui vous contacte indique son adresse, l'objet du message et son message (évidemment). Le code est une version...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Génération d'images VoirPrérequis PHP permet de créer des images au format GIF à l'aide d'une librairie de fonctions prévue à cet effet. La librairie permettant de créer et manipuler des fichiers graphiques se nomme GD, ainsi, pour pouvoir utiliser ces fonctions il faut...

1

rameur, le 14 mai 2005 à 17:59:27

<form action="mailto:monadresse@monsite.fr" ...>

Répondre à rameur

2

tophe03, le 14 mai 2005 à 18:37:23

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

Répondre à tophe03

3

kilian, le 14 mai 2005 à 18:45:24

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?

Répondre à kilian

4

tophe03, le 14 mai 2005 à 18:51:28

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

Répondre à tophe03

5

exterminateur, le 8 jun 2007 à 16:03:49
  • +10

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

Répondre à exterminateur

6

 gryzzly, le 8 jun 2007 à 16:13:18

Et vive le détérrage de posts de 2005 !

Répondre à gryzzly