Problème d'accents dans formulaire php

Résolu
Bonjour, je bloque sur un formulaire pour mon site, j'ai une page formulaire.php et une page mail.php, le formulaire est bien envoyé sur mon mail mais si il y a des accents ils sont remplacés (par ex é est remplacé par "& e a cute;" sans les espaces) j'ai essayé plein de chose trouvé sur le net mais rien de concluant. Voici mon code si quelqu'un peut m'aider:
<?php                          
   $nom=htmlentities($_POST['txtnom']);
   $prenom=htmlentities($_POST['txtprenom']);
   $ville=htmlentities($_POST['txtville']);
   $mel=htmlentities($_POST['txtmail']);
   $mobile=htmlentities($_POST['txtmobile']);
   $pseudo=htmlentities($_POST['txtpseudo']);
   $metier=htmlentities($_POST['txtmetier']);
   
   $destinataire = 'XXXXX@XXXXX.fr';
   $from='From : XXXXX@XXXXXX.fr';
   $objet = 'XXXXXX';
   
   
   $contenu .= "Nom : " . $nom;
   $contenu .= "  -  Prenom : " . $prenom;
   $contenu .= "  -  Ville : " . $ville;
   $contenu .= "  -  Email : " . $mel;
   $contenu .= "  -  Mobile : " . $mobile;
   $contenu .= "  -  Pseudo : " . $pseudo;
   $contenu .= "  -  Metier : " . $metier;
   
        $retour=mail($destinataire,$objet, $contenu, $from);
        if($retour)
            echo 'Votre message a bien été envoyé !';
        ?>


EDIT : Ajout de la coloration SYNTAXIQUE dans les balises de code

2 réponses

  1. Modérateur
    Bonjour,

    Commence par appliquer ceci :
    https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8

    NB: Je déplace ta question dans le forum PHP
    0
    1. Modérateur
      Et remplace le contenu de ta variable $from par:
      $from = "XXXXX@XXXXXX.fr";
      // create header
      $header  = 'MIME-Version: 1.0' . "\r\n";
      $header .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
      $header .= 'From: ' . $from. "\r\n";
      


      et donc l'appel de la fonction mail
      $retour=mail($destinataire,$objet, $contenu, $header);
      
      0
  2. Merci ça fonctionne, voici le code qui fonctionne pour les prochains:

    <?php                          
       $nom=htmlentities($_POST['txtnom']);
       $prenom=htmlentities($_POST['txtprenom']);
       $ville=htmlentities($_POST['txtville']);
       $mel=htmlentities($_POST['txtmail']);
       $mobile=htmlentities($_POST['txtmobile']);
       $pseudo=htmlentities($_POST['txtpseudo']);
       $metier=htmlentities($_POST['txtmetier']);
       
       $destinataire = 'XXXXX@XXXXX.fr';
       $from='From : XXXXX@XXXXXX.fr';
       $objet = 'XXXXXX';
       
       $header  = 'MIME-Version: 1.0' . "\r\n";
       $header .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
       $header .= 'From: ' . $from. "\r\n";
    
       
       $contenu .= "Nom : " . $nom;
       $contenu .= "  -  Prenom : " . $prenom;
       $contenu .= "  -  Ville : " . $ville;
       $contenu .= "  -  Email : " . $mel;
       $contenu .= "  -  Mobile : " . $mobile;
       $contenu .= "  -  Pseudo : " . $pseudo;
       $contenu .= "  -  Metier : " . $metier;
       
            $retour=mail($destinataire,$objet, $contenu, $header);
            if($retour)
                echo 'Votre message a bien été envoyé !';
            ?>
    
    
    0
    1. Modérateur
      n'oubli pas de mettre le sujet en RESOLU ( via le bouton en forme de roue crantée à droite du titre de ta question.)
      Merci.
      0