Objet From du email

Fermé
coursiti Messages postés 1 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 26 janvier 2008 - 26 janv. 2008 à 00:09
 le père - 26 janv. 2008 à 11:23
Bonjour,
quelqu'un peut-il me dire où est l'erreur, je manque de recul après d'incalculables heures de prog
(en principe l'erreur est coincée quelque part là-dedans...je soupçonne la ligne du From...)

$ls_entete ="MIME-Version: 1.0\r\n";
$ls_entete .="From: {$_POST['prenom']} {$_POST['nom']} "
."<{$_POST['email']}>\r\n";
$ls_entete .='Reply-To: '.$_POST['email']."\r\n";
$ls_entete .='Content-Type: text/plain; charset="iso-8859-1"';
$ls_entete .="\r\nContent-Transfer-Encoding: 8bit\r\n";
$ls_entete .='X-Mailer:PHP/' . phpversion()."\r\n";

manque-t-il de détails pour vous faire une meilleure idée?
merci à ceux et celles qui se dévouent pour les perdus comme moi
courisiti
A voir également:

3 réponses

Bonsoir

Chez moi ça marche en ayant remplacé test variables par des constantes. Es-tu sûr du contenu des variables ? As-tu un message d'erreur à l'envoi du mail ou est-ce que le message reçu ne correspond pas à ce que tu attends ?
0
oui je suis certain de mes variables.
Tu me dis que ça fonctionne chez-toi? Tu confirmes donc la validité de ce code (si mes variables sont bonnes évidemment, ce que je confirmes de mon côté) ? Donc ma question concerne l'implémentation de ces variables avec POST. Ma syntaxe est-elle correcte (guillemets et tout)?
Le message d'erreur suivant revient invariablement.
Parse error: syntax error, unexpected T_STRING in /home/.wooly/moimeme/echangedecadeau.net/formulaire_contact/traitement.php on line 49
cette ligne 49 est la première ligne du html. Elle sort carrément du PHP comme ça arrive souvent pour une simple question de virgule ou de guillemet mal luné.

Je met mon code complet à la suite:


define('SUPPORT_TECHNIQUE', 'technique@echangedecadeau.net');
define('WEBMESTRE', 'webmestre@echangedecadeau.net');
define('SERVICE_APRES_VENTE', 'sav@echangedecadeau.net');

//réception et contrôle du formulaire
if (!isset($_POST['prenom'],$_POST['nom'],
$_POST['destinataire'],$_POST['email'],
$_POST['message'],$_POST['objet'])){
//si les champs ne sont pas remplis
//le formulaire est retourné
header('Location: formulaire.html');
}
//détermination du destinataire
if($_POST['destinataire'] ==2){
$ls_destinataire = SERVICE_APRES_VENTE;
}else if($_POST['destinaire']==3){
$ls_destinataire=SUPPORT_TECHNIQUE;
}else{
$ls_destinataire = WEBMESTRE;
}
//préparation de l'entete du courriel (celui du web)
$ls_entete ="MIME-Version: 1.0\r\n";
$ls_entete .="From: {$_POST['prenom']} {$_POST['nom']} "
."<{$_POST['email']}>\r\n";
$ls_entete .='Reply-To: '.$_POST['email']."\r\n";
$ls_entete .='Content-Type: text/plain; charset="iso-8859-1"';
$ls_entete .="\r\nContent-Transfer-Encoding: 8bit\r\n";
$ls_entete .='X-Mailer:PHP/' . phpversion()."\r\n";

//préparation du corps
$ls_corps = $_POST['message'];
//préparation du titre

$ls_objet = str_replace("\n", '',$_POST['objet']);

//envoi du courriel
if(mail($ls_destinataire,$ls_objet,$ls_corps,$ls_entete)){
//le courriel est bien expédié
$ls_message ='Votre message a été envoyé ';
}else{
//le courriel n'a pas t envoyé
$ls_message = 'Une erreur est survenue lors de l\'envoi du courriel';
}
?>

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1 //EN" "xhtml1.dtd"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<link rel="stylesheet" type="text/css" media="all" href="all.css"/>
<link rel="stylesheet" type="text/css" media="screen" href="screen.css"/>
<link rel="stylesheet" type="text/css" media="print" href="print.css"/>
<script type="text/javascript" src="controle.js"></script>
</head>

<body>
<h1>Formulaire de contact</h1>
<p>
<?php
echo htmlentities($ls_message);
?>
</p>
</body>
</html>


Merci de la patience...
0
Bonjour

Tu dis que tu es sûr de tes variables, mais pas de l'utilisation de POST ??? Mais c'est $_POST, ta variable. C'est de ça que je parlais.
L'utilisation des guillemets m'a l'air tout à fait correcte
Il manque <?php au début du script et je suppose qu'il existe mais que tu ne l'as pas recopié
J'ai recopié ton script intégralement (copier-coller) en rajoutant <?php au début, l'initialisation de $_POST et en changeant les adresses email. Tout a très bien marché.
Donc je ne vois pas d'explication.

Alors peux tu faire, juste avant l'envoi du mail, un echo $_POST['prenom'],' ',$_POST['nom'],$_POST['email'];
0