Problème d'accent avec un mail de formulaire

BlueCoffee Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
CookieSpirit Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   -
Salutation,

La question a maintes fois était posée mais je n'ai malheureusement pas trouvé mon bonheur parmi les nombreuses solutions trouvés en farfouinant sur Google : dans les mails que je reçois via mon formulaire de contact les accents sont remplacés par divers symboles.

Mon code :

<?php
$to = "monadresse@gmail.com";
$sujet = "Message : " . $_POST['sujet'];
$message =
"Nom : " . $_POST['nom'] . "\r\n" .
"E-mail : " . $_POST['email'] . "\r\n" .
"Sujet : " . $_POST['sujet'] . "\r\n" .
"\r\n" .
"Message: " . $_POST['message'];
$from=$_POST['email'];
$headers = "From: $from" ;
mail($to,$sujet,$message,$headers);
?>

Quelqu'un pour me guider ?

2 réponses

gaylord57 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   1
 
il ne les prend pas en charge
0
CookieSpirit Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   12
 
Déjà ATTENTION, ne jamais directement insérer des $_POST dans quelque chose qui sera affiché, toujours prendre des précautions et aussi tester si l'adresse e-mail est d'une forme valide avec la fonction filter_var();
if(filter_var($email, FILTER_VALIDATE_EMAIL))
{
    //effectuer la préparation et l'envoi du mail
}
else
{
    //Afficher une erreur
}


Ensuite pour ton problème d'accents c'est simplement dû à l'encodage du message qui différe de celui du mail.

Essaye en ajoutant :
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";


après
$headers = "From: $from" ;


Cordialement, CookieSpirit
0
BlueCoffee Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   6
 
Je te remercie pour ta réponse ainsi que ton conseil additionnel concernant le mail.
Malheureusement, cela ne semble pas fonctionner non plus.
0
CookieSpirit Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   12
 
La page contenant le formulaire a bien l'encodage charset=iso-8859-1 également?
Avez-vous essayé en mettant une phrase toute prête du style
$message = 'testons si les accents fonctionnent ééèàêëä';
Le plus important est de pouvoir isoler le problème pour savoir exactement où ça bloque.
0
BlueCoffee Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   6
 
Merci, je commence à y voir plus clair :
- Effectivement, une phrase test ressort correctement.
- Effectivement encore, la page de mon formulaire n'était pas en iso-8859-1.

Une fois passé en iso-8859-1 le formulaire envois parfaitement les données.
Mais après cela ce sont les caractères de ma page HTML qui s'affichent mal.

Ces histoires d'encodage me troublent... Je vais potasser des articles là dessus pour voir si je trouve une solution. J'imagine qu'il doit y avoir un moyen de tout affiché correctement.
0
BlueCoffee Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   6
 
Même après avoir lu quelques articles tout cela me semble encore bien obscure.
Il n'y a pas moyen de garder la page de mon formulaire en UTF-8 et de mettre mon fichier PHP en UTF-8 également ?
Déclarer "header('Content-Type: text/html;charset=UTF-8');" ne semble rien changer.

D'ailleurs dans le bas de mon fichier PHP il y a un petit bout de HTML avec une phrase, cette dernière refuse également d'afficher les accents.
0
CookieSpirit Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   12
 
Si votre site n'est destiné qu'à un public francophone ou avec un alphabet classique (anglais etc.), je vous conseille fortement de mettre toutes vos pages en iso-8859-1, avec un logiciel tel que notepad ++ vous serez en mesure de modifier les problèmes d'accentuations dans vos pages.

Cependant si vous vous destinez également à un public Russe/Espagnol ou tout autre langue avec un alphabet ou une accentuation différente, il faudra effectivement rester en UTF-8

N'ayant qu'un site en iso-8859-1 et un système de mail qui va de pair, je ne pourrai pas vous aider pour ce qui est de l'UTF-8.

Cordialement, CookieSpirit
0