Salut à tous
J'ai créer un script PHP pour envoyer un email via un formulaire.
Le script fonctionne parfaitement, mais j'ai quand même un soucis d'affichage au niveau du destinataire, de l'expéditeur et du sujet du message.
En effet mes pages et ma base de données sont en UTF-8, et lorsque le destinataire (ou l'expéditeur, ou le sujet) contient un caractère spécial du genre "é" cela s'affiche comme çà : é (exemple : Véronique s'écrira Véronique).
Pour le message, j'ai trouvé (en cherchant sur le web) une parade en rajoutant :
Code :
- // Type MIME
- $entete .= "Content-Type: text/plain; charset=UTF-8\r\n";
- // Encodage
- $entete .= "Content-Transfer-Encoding: 8bit\r\n";
|
Pour l'instant la seule solution que j'ai trouvé consiste à remplacer "é" par "e" grâce à la fonction str_replace(), mais j'avoue qu'elle ne me satisfait pas et en plus je ne sais pas comment remplacer plusieurs caractères.
Voici le code qui me permet d'envoyer le mail :
Code :
- <?php
- // variables
- $prenom = $_POST['dest_prenom'];
- $nom = $_POST['dest_nom'];
- $email = $_POST['dest_email'];
- $prenom_expediteur = $_POST['exp_prenom'];
- $nom_expediteur = $_POST['exp_nom'];
- $email_expediteur = $_POST['exp_mail'];
- $sujet_expediteur = $_POST['sujet'];
- $message_expediteur = $_POST['contenu'];
- // Adresse du destinataire
- $destinataire = str_replace("é","e","$prenom $nom <$email>" );
- // Sujet du mail
- $sujet = "$sujet_expediteur";
- // Adresse de l'expediteur
- $entete = "From: $prenom_expediteur $nom_expediteur <$email_expediteur>\r\n";
- // Type MIME
- $entete .= "Content-Type: text/plain; charset=UTF-8\r\n";
- // Encodage
- $entete .= "Content-Transfer-Encoding: 8bit\r\n";
- // Message
- $message = "$message_expediteur";
- // Fonction mail()
- mail($destinataire, $sujet, $message, $entete);
- ?>
|
Pouvez-vous m'aider ?
Merci d'avance.
![[:fafane84] [:fafane84]](https://forum-images.hardware.fr/images/perso/fafane84.gif)
Message édité par fafane84 le 04-12-2005 à 00:06:38
---------------
Mon Topic de Vente Hardware