[Résolu] Caractères accentués dans formulaire d'envoi de mail.

Caractères accentués dans formulaire d'envoi de mail. [Résolu] - PHP - Programmation

Marsh Posté le 25-02-2015 à 11:27:06    

Bonjour,
 
J'ai un formulaire d'envoi de mail qui fonctionne très bien.
 
Le petit bémol, c'est que les caractères accentués ne sont pas gérés dans les messages envoyés par les clients. J'ai droit à des "©E..." dans le contenu du mail.
 
Voici le code :
 

Code :
  1. <?php
  2.         // L'adresse mail du destinataire.
  3.         $recipient = "XXX@XXX.com";
  4.         // Sujet du mail.
  5.         $subject = "Site Internet : Message de $name";
  6.         // Construction du contenu du mail.
  7.         $email_content = "Nom | Prénom : $name\n";
  8.  $email_content .= " ";
  9.         $email_content .= "Email: $email\n\n";
  10.  $email_content .= " ";
  11.         $email_content .= "Téléphone: $telephone\n";
  12.  $email_content .= " ";
  13.  $email_content .="Message:\n$message\n";
  14.         // Construction du header du mail.
  15.         $email_headers = "De: $name <$email>";
  16.         // Envoi du email.
  17.         //if (mail($recipient, $subject, $email_content, $email_headers)) {
  18.  if (mail($recipient, '=?utf-8?B?'.base64_encode($subject).'?=',$email_content,$email_headers)) {
  19.             // Etabli un code retour 200 (okay).
  20.             http_response_code(200);
  21.             echo "Merci! Votre message a ete envoye avec succes ! Je vous repondrai des que possible.";
  22.         }
  23.     }
  24. ?>


 
Comment corriger ?
 
Cdt,
 
slr56.


Message édité par slr56 le 25-02-2015 à 14:06:52

---------------
Configurations type du moment : https://forum.hardware.fr/hfr/Hardw [...] 1331_1.htm  https://www.jouannetphotographe.com
Reply

Marsh Posté le 25-02-2015 à 11:27:06   

Reply

Marsh Posté le 25-02-2015 à 12:32:19    

Bonjour,
 
Il y a 4 éléments à vérifier/faire pour être tranquille :
 - Dans ton éditeur de code, utiliser l'encodage UTF-8 sans BOM
 - Dans la page HTML, utiliser cette balise dans la section HEAD  <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
 - Dans les attributs du formulaire <form action="..." method="post" accept-charset="utf-8">
 - Ta base de donnée doit aussi être en UTF-8 (option de la table).
 
L'encodage en tout Unicode / UTF-8 te permettra d'être tranquille. Si un des éléments diverge tu auras ce genre de caractères bizarre.


Message édité par bbalet le 25-02-2015 à 12:36:12
Reply

Marsh Posté le 25-02-2015 à 14:06:35    

Bonjour et merci bbalet,
 
C'est noté et ça marche.  :)


---------------
Configurations type du moment : https://forum.hardware.fr/hfr/Hardw [...] 1331_1.htm  https://www.jouannetphotographe.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed