Problème d'accents dans formulaire php

Résolu/Fermé
spike2012 Messages postés 2 Date d'inscription vendredi 27 avril 2018 Statut Membre Dernière intervention 27 avril 2018 - Modifié le 27 avril 2018 à 10:52
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 27 avril 2018 à 14:11
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
A voir également:

2 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
27 avril 2018 à 10:51
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
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
Modifié le 27 avril 2018 à 10:55
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
spike2012 Messages postés 2 Date d'inscription vendredi 27 avril 2018 Statut Membre Dernière intervention 27 avril 2018
Modifié le 27 avril 2018 à 12:34
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
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
27 avril 2018 à 14:11
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