Objet From du email

coursiti Messages postés 1 Statut Membre -  
 le père -
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
Configuration: Windows XP
Firefox 2.0.0.11

3 réponses

  1. le père
     
    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
  2. coursiti
     
    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
  3. le père
     
    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