Page 1 sur 1

Pb de caractères accentués suite envoi des infos saisies dans un formulaire via la fonction mail

Posté : 02 nov. 2021, 13:47
par Alain73
Bonjour,

J'ai fait le tour de différents sites et n'ai pas réussi à solutionner mon problème, pourtant le sujet est assez connu apparemment ...

Je crée à mes heures perdues des sites internet et pour l'un d'entre eux , une fonctionnalité ne fonctionne par correctement ...

J'espère que vous pourrez m'aider ...

La problématique est la suivante : l'une des pages du site permet de saisir un message que l'on souhaite transmettre à quelqu'un.
La saisie se fait via un formulaire classique et à la soumission on envoi le contenu du formulaire via la fonction mail.
Le problème est que les caractères accentués ne sont pas correctement affichés.

J'ai essayé différentes définition du CHARSET mais rien n'y fait ...


dans la page index je précise :
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

dans le php du formulaire je précise les éléments suivants :

j'ai essayé ces deux définitions :
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
et
$headers .='Content-type: text/html; charset= utf-8'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

et derrière la fonction mail :
mail($adresse,$messageobjet,$messagedeposez, $headers)

Est ce que vous voyez d'où peux provenir le problème ? de quels éléments auriez vous besoin pour pouvoir m'aider ?

Par avance merci.
Cordialement,
Alain

Re: Pb de caractères accentués suite envoi des infos saisies dans un formulaire via la fonction mail

Posté : 02 nov. 2021, 15:12
par @rthur
Au début de tes scripts PHP :
header('Content-type: text/html; charset=utf-8');
Vérifie que ton éditeur de code est bien en UTF8 aussi.
Pour te simplifier la vie, il faut que tout soit en utf8 du début à la fin.

Et en dernier recours, tu bidouilles avec utf8_encode() ou utf8_decode()

Re: Pb de caractères accentués suite envoi des infos saisies dans un formulaire via la fonction mail

Posté : 02 nov. 2021, 20:00
par Alain73
Bonjour,

qu'est ce que tu entends par éditeur de code ?

en fait le site fonctionne comme si il n'y avait qu'une page php à afficher : les autres pages php sont des parties de la page index.php et s'affichent en fonction du choix de l'utilisateur.
=> du coup je ne précise <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> que dans le <head> de ma page index.php .
il faudrait ajouter "header('Content-type: text/html; charset=utf-8');" au début de chacune de mes pages .php ?

merci

Re: Pb de caractères accentués suite envoi des infos saisies dans un formulaire via la fonction mail

Posté : 02 nov. 2021, 20:47
par or 1
l'éditeur de code est le logiciel utilisé pour modifier le code php.

il faut ajouter le header sur la page contenant le formulaire et sur le script envoyant l'email. ctrl + i sous firefox pour vérifier que c'est bien en utf8.

Re: Pb de caractères accentués suite envoi des infos saisies dans un formulaire via la fonction mail

Posté : 03 nov. 2021, 13:58
par Alain73
Bonjour,
Merci pour le retour.

je ne comprend spas trop le lien avec l'éditeur ( en l'occurence ici c'est DW CS5), on pourrait très bien l'écrire via un vieux bloc note ...

J'ai vérifié via fire fox la page est bien encodée UTF-8.

je suppose que c'est l'encodage lors de l'envoi du mail qui est faux, voilà ce que j'avais intégré dans le header pour rappel :
j'ai essayé ces deux définitions :
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
et
$headers .='Content-type: text/html; charset= utf-8'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

Est ce que c'est là qu'il y a un souci ?
Merci
Alain

Re: Pb de caractères accentués suite envoi des infos saisies dans un formulaire via la fonction mail

Posté : 03 nov. 2021, 14:02
par or 1
dans mon éditeur, je peux changer l'encodage, passer d'utf8 à iso..., ce qui a un impact dans certains cas.

si au lieu d'envoyer l'email, le script affiche les données du formulaire, les accents s'affichent correctement ?

Re: Pb de caractères accentués suite envoi des infos saisies dans un formulaire via la fonction mail

Posté : 03 nov. 2021, 14:17
par Alain73
oui j'avais testé via un echo et ça fonctionne correctement

Re: Pb de caractères accentués suite envoi des infos saisies dans un formulaire via la fonction mail

Posté : 05 nov. 2021, 09:19
par Alain73
Bonjour

est ce quelqu'un aurait une idée pour solutionner ce problème ?

Par avance merci.
Alain

Re: Pb de caractères accentués suite envoi des infos saisies dans un formulaire via la fonction mail

Posté : 05 nov. 2021, 13:44
par or 1
repartir de 0. commencer par faire un script php qui envoie un mail en utf8 avec des accents.
ensuite, faire un formulaire et l'envoyer vers un script qui affiche le contenu du formulaire.
enfin, envoyer le formulaire vers le script d'envoi de l'email modifié.