IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Encodage d'un e-mail envoyé depuis un formulaire


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Encodage d'un e-mail envoyé depuis un formulaire
    Bonjour,

    J'ai un problème lors de la réception d'email via la fonction php mail(). Tout ce qui est accent ou apostrophe est complètement tronqué.

    Je reçois la version suivante du message comme test :
    bonjour l\'ami ! Comment va ton âme depuis la dernière fois ?

    Pourtant il me semblait voir bien écrit mon fichier.

    Je vous glisse ci-dessous son contenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?
    // permet d'être redirigé après traitement à l'adresse de la page de remerciement - placé en début de code
    header("location: http://kouign.free.fr/remerciement.html");
     
    // ici on récupère sous la forme de variable php les variables transmises par le formulaire html (les différents champs du formulaire)
    $nom = $_POST['nom']; 
    $prenom = $_POST['prenom']; 
    $commentaires = $_POST['commentaires']; 
     
    // création de l'entête du mail
    $header = "From: webmaster@kouign.free.fr\r\n";
    $header .= "Content-Type: text/html; charset=utf-8"."\r\n"; 
     
    // destinataire du mail - a remplir par vous même
    $to = "votreadresse@fai.fr";
     
    // Nom du sujet tel qu'il apparaitra dans votre boite aux lettres
    $sujet = "Commentaires sur le test";
     
    // contenu du message qui vous parviendra où sont repris les variables php précédemment citées - \r\n utilisés pour les sauts de lignes
    $msg = "Cette personne vous a écrit : ".$nom." ".$prenom."\r\n\r\n";
    $msg .= "Voici ses commentaires : ".$commentaires."\r\n\r\n";
     
    // envoi du mail contenant le destinataire, le sujet, le contenu et l'entête
    mail($to,$sujet,$msg,$header);
     
    ?>
    Là j'avoue que j'ai pas mal tourné sur les différents forums avec des réponses assez similaire auxquels je me sens assez proche dans la forme, et pourtant ça ne fonctionne pas comme je veux (bien que je reçoive le mail). Tout ce qui est redirection c'est nickel.

    Pourriez vous m'aider à recevoir un message accentué comme il faut ?

    Merci.

    tibreizh

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    a priori si t'envoies un header spécifiant le charset utf-8, il faut que t'encodes tes données avec utf8_encode()
    Vive les roues en pierre

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'ai fais un utf8_encode au moment où je traite les $_POST

    du type : $nom = utf8_encode($_POST['nom']);

    Rien de changé.

  4. #4
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Si tu changes ton charset=utf-8 par charset=iso-8859-1 est-ce que ça passe ?
    Vive les roues en pierre

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Toujours pareil.

    résultat: Ton âme va bien depuis la nuit dernière

    La page HTML a un charset en UTF-8 pour info.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bon j'ai fais le tour de la question et j'ai toutefois essayé sur différents clients de messagerie.

    Si je passe sur horde de free, les accents ne sont pas respectés. En revanche sur Hotmail.com c'est nickel, rien à redire.

    Sans doute est-ce finalement un problème lié au client de messagerie.

    Je conclu ceci comme résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/11/2008, 14h11
  2. Réponses: 2
    Dernier message: 21/10/2008, 10h44
  3. mails envoyé depuis mon site vont dans les spams de gmail
    Par lysandre dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 21/01/2008, 10h32
  4. [Encodage] Unicode dans un mail envoyé par servlet
    Par beber69 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 16/09/2005, 17h21
  5. [MAIL] comment en envoyer depuis une servlet ?
    Par outreal dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 09/07/2004, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo