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 :

Réception d'un formulaire par mail les accents ne s'affichent pas correctement


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Réception d'un formulaire par mail les accents ne s'affichent pas correctement
    Bonjour, bonsoir (c'est selon) ;-)

    Voilà, pour commencer, je suis nul en programmation et très peu technicien.
    Il y a maintenant deux jours que je cherche une solution à mon problème et là, je n'en peux plus.
    Je me suis inspiré de différentes ressources pour construire mon formulaire ainsi que le code PHP
    Le traitement de mon formulaire se fait bien mais quand je le reçois dans ma boite mail sous thunderbird (je ne désire pas tester avec d'autres clients mails), le contenu de mon "textarea" et de la construction de mon message en PHP ne respectent pas les accents ...
    Par contre, les champs objet et expéditeur, eux, affichent les accents ...

    Y-aurait-il une ou plusieurs bonne(s) âme(s) pour m'aider à solutionner ce problème?

    D'avance merci pour votre aide.

    Voici mes codes

    Dans mon fichier contact.html
    Code html : 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
    <form action="soumission1.php" method="post">
      <fieldset>
          <legend>Pour causer à PéPé</legend>
    	<label for="name">Nom et Prénom ou Pseudo:</label>
    	<input type="text" id="name" name="name" placeholder="Saisissez votre Nom et votre Prénom ou un Pseudo" />
     
    	<label for="email">Email :</label>
    	<input type="text" id="email" name="email" placeholder="Saisissez votre email" />
     
    	<label for="objet">Objet :</label>
    	<input type="text" id="objet" name="objet" placeholder="Quelle est la raison de votre message?" />
     
    	<label for="message">Message:</label>
    	<textarea name="message" cols="" rows="" id="message" placeholder="Ecrivez ici votre message"></textarea>
     
    	<input type="submit" value="Envoyer" />
     
      </fieldset>
     
    </form>

    Mon fichier soumission1.php
    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
    28
    29
    30
    31
    32
    33
    <?php
    /* Récupération des valeurs des champs du formulaire */
    if  (get_magic_quotes_gpc ())
    {
        $nom = stripslashes ($_POST['name']); 
        $expediteur = stripslashes ($_POST['email']); 
        $objet = stripslashes ($_POST['objet']); 
        $message = stripslashes ($_POST['message']); 
    } 
    else 
    {  
        $nom = $_POST['name']; 
        $expediteur = $_POST['email']; 
        $objet = $_POST['objet']; 
        $message = $_POST['message']; 
    }
    /* Destinataire (votre adresse e-mail) */
    $to = 'monmail@machin.be';
     
    /* Construction du message */
    $msg  = 'Bonjour,'."\r\n\r\n";
    $msg .= 'Ce mail a été envoyé depuis monsite.com par '.$nom."\r\n\r\n";
    $msg .= 'Voici le message qui vous est adressé :'."\r\n\r\n";
    $msg .= '***************************'."\r\n\r\n";
    $msg .= $message."\r\n\r\n";
    $msg .= '***************************'."\r\n";
     
    /* En-têtes de l'e-mail */
    $headers = 'From: '.$nom.' <'.$expediteur.'>'."\r\n\r\n";
     
    /* Envoi de l'e-mail */
    mail ($to, $objet, $msg, $headers);
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Vérifie que ta page HTML de formulaire et tes fichiers .php sont dans le même encodage.

    Si tu nous dis à quoi ressemble les accents mal affichés, on pourra te dire dans quel sens l'encodage n'est pas bon.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut un peu plus de détails à votre demande
    Voici le code de l'entête de ma page contact.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    <head>
    	<title>Contact</title>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    Et voici comment est encodé ma page soumission.php
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php
    /* Récupération des valeurs des champs du formulaire */
    if  (get_magic_quotes_gpc ())
    {
        $nom = stripslashes ($_POST['name']); 
        $expediteur = stripslashes ($_POST['email']); 
        $objet = stripslashes ($_POST['objet']); 
        $message = stripslashes ($_POST['message']); 
    } 
    else 
    {  
        $nom = $_POST['name']; 
        $expediteur = $_POST['email']; 
        $objet = $_POST['objet']; 
        $message = $_POST['message']; 
    }
    /* Destinataire (votre adresse e-mail) */
    $to = 'machin@domaine.be';
     
    /* Construction du message */
    $msg  = 'Bonjour,'."\r\n\r\n";
    $msg .= 'Ce mail a été envoyé depuis monsite.com par '.$nom."\r\n\r\n";
    $msg .= 'Voici le message qui vous est adressé :'."\r\n\r\n";
    $msg .= '***************************'."\r\n\r\n";
    $msg .= $message."\r\n\r\n";
    $msg .= '***************************'."\r\n";
     
    /* En-têtes de l'e-mail */
    $headers = 'From: '.$nom.' <'.$expediteur.'>'."\r\n\r\n";
     
    /* Envoi de l'e-mail */
    mail ($to, $objet, $msg, $headers);
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    <head>
    	<title>Contact</title>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    Voici le message de test que j'envoie:
    Nom et Prénom ou Pseudo: Aimée
    Email: monmail@domaine.be
    Objet: Encore une test
    Message: Est-ce que ce mail va arriver dans ma boîte mail et si oui, les caractères accentués sont-ils visible dans mon client mail?

    Et l'apostrophe comment est-elle gérée?
    Et voici le message que je reçois dans Thunderbird:
    Bonjour,

    Ce mail a été envoyé depuis monsite.com par Aimée

    Voici le message qui vous est adressé :

    ***************************

    Est-ce que ce mail va arriver dans ma boîte mail et si oui, les caractères accentués sont-ils visible dans mon client mail?

    Et l'apostrophe comment est-elle gérée?

    ***************************
    En espérant avoir été le plus précis possible.

    Et d'avance merci pour votre aide.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Précise l'encodage dans le mail :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $headers = 'From: '.$nom.' <'.$expediteur.'>'."\r\n\r\n";
    $headers .= 'Content-Type: text/plain;charset=UTF-8' . "\r\n";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    J'ai déjà essayé ce que tu proposes mais ça ne coûte rien de le refaire qui sait ...
    Je te tiens au courant dans quelques minutes tu auras l'info!

  6. #6
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Ben voilà, je viens de faire le test, ça ne fonctionne pas :'(

    Mais quelle est la différence entre ce code que je mets dans mes pages *.html et *.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    avec celui que tu me proposes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers .= 'Content-Type: text/plain;charset=UTF-8' . "\r\n";
    dans ta proposition tu mets text/plain

    dans mes pages c'est text/html

    Crois-tu que cela peut marcher si je fais ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers .= 'Content-Type: text/html;charset=UTF-8' . "\r\n";

  7. #7
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Bon, j'ai fais le test avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers .= 'Content-Type: text/html;charset=UTF-8' . "\r\n";
    ça ne fonctionne pas non plus :'(

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Mais quelle est la différence entre ce code que je mets dans mes pages *.html et *.php
    Ce que tu as mis concerne l'encodage de la page HTML pas du mail envoyé.

    Vérifie dans un éditeur de texte l'encodage de tes fichiers .php
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Comment faire ça avec notepad ++ ?

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    A tout hasard dans le menu "encodage" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Ecoder en UTf-8 (sans BOM)

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme ça peut être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $headers = 'From: '.$nom.' <'.$expediteur.'>'."\r\n";
    $headers .= 'Content-Type: text/plain; charset=utf-8' . "\r\n";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Candidat au Club
    Homme Profil pro
    amateur
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Le problème est résolu!
    Il se situait au niveau de mon client mail (Thunderbird)

    J'ai sélectionné codage par défaut : UNICODE (UTF-8) et appliqué par défaut à tous les messages du dossier!

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

Discussions similaires

  1. [phpMyAdmin] Les accents ne s'affichent pas dans phpMyAdmin
    Par Séverine.r dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 16/04/2015, 00h06
  2. [Free Pascal] [Ubuntu] Les accents ne s'affichent pas bien
    Par joreveur dans le forum Free Pascal
    Réponses: 2
    Dernier message: 22/01/2011, 21h54
  3. Template flash : les accents ne s'affichent pas
    Par baraufranck dans le forum Flash
    Réponses: 1
    Dernier message: 01/11/2010, 13h33
  4. les é et è ne s'affiche pas correctement
    Par pierrot10 dans le forum Flash
    Réponses: 4
    Dernier message: 05/03/2007, 10h32
  5. Réponses: 3
    Dernier message: 20/02/2007, 00h35

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