Posez votre question Signaler

PHP envoi d'un formulaire par email

tophe03 327Messages postés lundi 24 janvier 2005Date d'inscription 14 avril 2010 Dernière intervention - Dernière réponse le 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
Lire la suite 
Réponse
+17
moins plus
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
Noobenhtml- 15 août 2012 à 01:29
Tu pourais nousconvertir tout ca en source html stp , paske sur explorer et chrome ca marche pas et sur mozzila a moitié seulement ^^'
Répondre
Ajouter un commentaire
Réponse
+2
moins plus
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
varquesse- 27 févr. 2012 à 12:27
même problème x)
Répondre
Ajouter un commentaire
Réponse
+1
moins plus
<form action="mailto:monadresse@monsite.fr" ...>
tophe03 327Messages 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
Répondre
kilian 8898Messages postés vendredi 19 septembre 2003Date d'inscription ContributeurStatut 1 août 2014 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?
Répondre
tophe03 327Messages postés lundi 24 janvier 2005Date d'inscription 14 avril 2010 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
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
et vive le détérrage de posts de 2005 !
Noviceman 221Messages postés mercredi 4 août 2010Date d'inscription 13 février 2015 Dernière intervention - 15 août 2012 à 01:58
Pô grave ça peut servir, lol :)
Répondre
Ajouter un commentaire
Ce document intitulé «  PHP envoi d'un formulaire par email  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.