PHP Formulaire : sos !

Résolu/Fermé
bg62 Messages postés 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 - 3 oct. 2006 à 11:03
Squalou Messages postés 29 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 29 novembre 2006 - 6 oct. 2006 à 15:02
bonjour,
de retour ... je viens à nouveau lancer un sos !
j'ai fait un formulaire (en php), mais lorsqu'on envoie, moi je reçois un mail avec :
de:expéditeur
à:contact@monsite.info
objet: formulaire de contact

j'aimerais bien avoir l'adresse de l'expéditeur dans "de:" pour pouvoir répondre directement
et ... dans objet, j'aimerais aussi avoir le 'motif de votre demande' que je n'obtiens que dans le mail
je sais ... cela doit être facile à corriger, mais mes connaissances en php sont limités !
alors merci à l'avance de bien vouloir me dépanner
- - - je joins le code ci-dessous
@mitiés
b g
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>NORMANDIERE modèle PHP</title>
<link href="../menu/includes/style_normandiere.css" type="text/css" rel="stylesheet">
</head>

<?php

$email_dest = "contact@monsite.info";

if ($_POST['envoi']) {

$message_remerciement = "merci de votre demande, nous vous répondons au plus vite.";

// E-mail headers:
$headers ="MIME-Version: 1.0 \n";
$headers .="From: expéditeur<mail épexditeur>\n";


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

$subject = "formulaire de contact";

$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>Assistant d'envoi de formulaires</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("toutes les lignes sont obligatoires !")
return false
} if (mail_form.zone_email.value == "") {
alert("vous avez oublier votre email")
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("remplissez la cas de votre demande")
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">motif de votre demande</font></td>
<td><input name="champ1" type="text"></td>
</tr><tr>
<td width><font face="Verdana" size="2">votre adresse email</font></td>
<td width><input name="zone_email" type="text"></td>
</tr><tr>
<td valign="top"><font face="Verdana" size="2">votre texte</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="1">
<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="motif de votre demande"><input name="titre_email" type="hidden" value="votre adresse email"><input name="titre_zone" type="hidden" value="votre texte"></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>

1 réponse

Squalou Messages postés 29 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 29 novembre 2006 3
6 oct. 2006 à 15:02
As tu essayé ceci :

Remplacer :
$headers .="From: expéditeur<mail épexditeur>\n";
par :
$headers .="From: $zone_email\n";

et
$subject = "formulaire de contact";
par
$subject = "Formulaire de contact: $champ1";
0