Menu

Accepter les "ç" et "é" dans un formulaire contact

TriHars 3 Messages postés vendredi 10 novembre 2017Date d'inscription 7 février 2018 Dernière intervention - 7 févr. 2018 à 21:54 - Dernière réponse : NHenry 14170 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 13 mai 2018 Dernière intervention
- 7 févr. 2018 à 22:00
Bonjour,
J'ai trouvé ce script sur internet pour l'envoi de mail depuis une page web, il fonctionne correctement je reçois les mails mais par contre les é,è,ç, etc ne sont pas pris en compte et sont affichés sous cette forme: éééé

Voici mon code:
Lien pastebin: https://pastebin.com/s2iKmPwU
 <?php
$VotreAdresseMail="hugo.lgn@hotmail.com";
if(isset($_POST['envoyer'])) {
if(empty($_POST['mail'])) {
echo "Le champ mail est vide";
} else {
//on vérifie que l'adresse est correcte
if(!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[a-zA-Z]{2,6}$#",$_POST['mail'])){
echo "L'adresse mail entrée est incorrecte";
}else{
//on vérifie que le champ sujet est correctement rempli
if(empty($_POST['sujet'])) {
echo "Le champ sujet est vide";
}else{
//on vérifie que le champ sujet est correctement rempli
if(empty($_POST['message'])) {
echo "Le champ message est vide";
}else{
//tout est correctement renseigné, on envoi le mail
//on renseigne les entêtes de la fonction mail de PHP
$Entetes = "MIME-Version: 1.0\r\n";
$Entetes .= "Content-type: text/html; charset=iso-8859-1\r\n";
$Entetes .= "From:" .$_POST['name']. "<".$_POST['mail'].">\r\n";//de préférence une adresse avec le même domaine de là où, vous utilisez ce code, cela permet un envoie quasi certain jusqu'au destinataire
$Entetes .= "Reply-To: ".$_POST['name']." <".$_POST['mail'].">\r\n";
//on sécurise les champs
$Mail=htmlentities($_POST['mail'],ENT_QUOTES,"ISO-8859-1"); //ENT_QUOTES Convertit les guillemets doubles et les guillemets simples, en entitès HTML, ISO-8859-1 est la norme pour les langues occidentales
$Sujet=htmlentities($_POST['sujet'],ENT_QUOTES,"ISO-8859-1");
$Message=htmlentities($_POST['message'],ENT_QUOTES,"ISO-8859-1");
//en fin, on envoi le mail
if(mail($VotreAdresseMail,utf8_encode($Sujet),nl2br($Message),$Entetes)) { //la fonction nl2br permet de conserver les sauts de ligne et la fonction urf8_encore de conserver les accents dans le titre
echo "Le mail à été envoyé avec succès !";
} else {
echo "Une erreur est survenue, le mail n'a pas été envoyé";
}
}
}
}
}
}
?>


Je vous remercie d'avance !
Afficher la suite 

Votre réponse

1 réponse

NHenry 14170 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 13 mai 2018 Dernière intervention - 7 févr. 2018 à 22:00
0
Utile
Problème d'encodage, renseignes-toi sur UTF-8 & co.
Commenter la réponse de NHenry