[RESOLU] accent dans fonction mail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] accent dans fonction mail

Re: accent dans fonction mail

par cestmoua » 28 avr. 2013, 14:00

Merci moogli,

J'ai de nouveau essayé utf-8 et ça a fonctionné

Re: accent dans fonction mail

par moogli » 26 avr. 2013, 23:34

salut,

change le charset indiqué dans l'entête du mail (iso en utf-8). => $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
pense à forcer le charset dans le formulaire au besoin.

tu peux aussi suivre les infos de ce tuto faq-tutoriels/encodage-utf-t245062.html

@+

Re: accent dans fonction mail

par ikkiphenix » 26 avr. 2013, 22:54

Salut,

As-tu essayé avec utf8_decode() ?

Code : Tout sélectionner

<?php $iso = utf8_decode("Mon texte en UTF8); echo $iso // le texte est en ISO-8859-1 ?>

accent dans fonction mail

par cestmoua » 26 avr. 2013, 17:48

Bonjour à tous,
Avant toute chose je voudrai m'excuser d'envoyer ce post car j'ai trouvé plein de chose sur Google pour résoudre mon probleme. Mais cela fai au moins deux ans que je le traine et 4 heures que je cherche.
J'utilise un formulaire sur un site web pour envoyer un mail avec la fonction mail de php. Le site est codé en html avec Dream toutes les pages html du site sont en utf-8 sauf celle du formulaire que jai passé en iso-8859-1 pour essayer de regler mon probleme de lettre accentuée, exemple les é è à ç sont remplacé par é.
mon code php est à la fin de ce post. Je sais que le header joue dans le probleme et c'est la dessus que je pense avoir tout essayer....

Merci d'avance de votre aide

Guillaume

<!-- DEBUT DU SCRIPT mail.php3-->
<?
$nom=$HTTP_POST_VARS['nom'] ;
$prenom=$HTTP_POST_VARS['prenom'] ;
$ville=$HTTP_POST_VARS['ville'] ;
$pays=$HTTP_POST_VARS['pays'] ;
$telephone=$HTTP_POST_VARS['telephone'] ;
$email=$HTTP_POST_VARS['email'] ;
$duree=$HTTP_POST_VARS['date'] ;
$midi=$HTTP_POST_VARS['midi'] ;
$soir=$HTTP_POST_VARS['soir'] ;
$question=$HTTP_POST_VARS['question'] ;
$mailto = "[email protected]"; //adresse à laquelle sera envoyé le contenu du formulaire
$mailsubject = "contact site Web restaurant Rendez-vous Saint Germain"; //texte qui va figurer dans le champ "sujet" du email
$headers = "From: $email\n"; //adresse email qui va figurer dans le champ "expéditeur" du email et qui peut être remplacé par la variable "$champx" ("$champ3").
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

/* Les routines suivantes permettent à chacune des variables de prendre la valeur des champs du formulaire et de les stocker ensuite dans la variable globale mailbody qui constituera le corps du message */

$envoi = 1; //initialisation de la variable envoi à 1

if ($nom == ""){ //nom du champ1
echo("<font face=verdana size=2>Vous n'avez pas complété le champ Nom.</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
$envoi = 0; //si le champ1 n'a pas été rempli, la variable envoi prend la valeur de 0
}
else {
$mailbody .= "Nom : $nom\n"; //si le champ1 contient de l'information, elle est stockée dans la variable mailbody
}
if ($prenom == ""){
echo("<font face=verdana size=2>Vous n'avez pas complété le champ Prénom.</font><br>");
$envoi = 0;
}
else {
$mailbody .= "Prenom : $prenom\n";
}
if ($ville == ""){
echo("<font face=verdana size=2>Vous n'avez pas complété le champ ville</font><br>");
$envoi = 0;
}
else {
$mailbody .= "Ville : $ville\n";
}
if ($pays == ""){
echo("<font face=verdana size=2>Vous n'avez pas complété le champ pays</font><br>");
$envoi = 0;
}
else {
$mailbody .= "Pays : $pays\n";
}
if ($telephone == ""){
echo("<font face=verdana size=2>Vous n'avez pas complété le champ téléphone</font><br>");
$envoi = 0;
}
else {
$mailbody .= "Telephone : $telephone\n";
}
if ($email == ""){
echo("<font face=verdana size=2>Vous n'avez pas complété le champ email</font><br>");
$envoi = 0;
}
else {
$mailbody .= "Email : $email\n";
}
$mailbody .= "Date pour réservation : $date\n";
$mailbody .= "Déjeuner : $midi\n";
$mailbody .= "Diner : $soir\n";
$mailbody .= "\n";
$mailbody .= "Question : $question\n";

if ($envoi == 0) echo("<p>&nbsp;</p><p>&nbsp;</p><p align=\"center\"><a href=\"javascript:history.back()\"><strong>Retour</strong></a></p>");
//Envoi du message
if ($envoi == 1) { //vérification que la variable envoi est bien à 1
mail($mailto, $mailsubject, $mailbody, $headers); //envoi du message
//mail($mailcc, $mailsubject, $mailbody, $headers); //envoi du mail (enlever // pour le rendre opérationnel
echo("<p align=\"center\"><font face=verdana size=3 color=#952500>Votre message a bien été envoyé</font></p>"); echo("<p align=\"center\"><font face=verdana size=3 color=#952500><a href=\"javascript:window.close()\">Fermer le site</a></p>"); echo("<p align=\"center\"><font face=verdana size=3 color=#952500><a href=\"index.html\">Revenir à la page accueil</a></p>"); //affichage d'un message de confirmation.
}
?>
<!-- FIN DU SCRIPT mail.php3-->