PHP utf-8 ne fonctionne pas toujours...
Fermé
Lordclaymore
-
17 mai 2010 à 03:10
EminoMeneko Messages postés 2435 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 - 17 mai 2010 à 04:24
EminoMeneko Messages postés 2435 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 - 17 mai 2010 à 04:24
A voir également:
- PHP utf-8 ne fonctionne pas toujours...
- Clé windows 8 - Guide
- Mixcraft 8 - Télécharger - Création musicale
- Easy php - Télécharger - Divers Web & Internet
- Internet explorer 8 - Télécharger - Navigateurs
- Driver booster 8 - Télécharger - Pilotes & Matériel
2 réponses
EminoMeneko
Messages postés
2435
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
23 mai 2018
318
Modifié par EminoMeneko le 17/05/2010 à 03:38
Modifié par EminoMeneko le 17/05/2010 à 03:38
C'est effectivement très intéressant que ça marche chez Yahoo! et Hotmail mais pas chez Google ou Vidéotron.
Le problème semblerait être extérieur à ton code mais il se peut aussi qu'au font tu ne respecterais pas bien un standard.
Dans tous les cas c'est assez intéressant comme problème.
Est-ce que tu renseigne bien l'encodage utilisé :
Dans les entêtes SMTP ?
Si le mail est au format HTML, dans la balise <meta>
Comme ceci
ou comme cela
Consultes aussi la doc de PHP
https://www.php.net/manual/en/function.mail.php
Le problème semblerait être extérieur à ton code mais il se peut aussi qu'au font tu ne respecterais pas bien un standard.
Dans tous les cas c'est assez intéressant comme problème.
Est-ce que tu renseigne bien l'encodage utilisé :
Dans les entêtes SMTP ?
Si le mail est au format HTML, dans la balise <meta>
Comme ceci
<meta name= "charset" content= "utf-8">
ou comme cela
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Consultes aussi la doc de PHP
https://www.php.net/manual/en/function.mail.php
Voici mon code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Validation de l'envoi</title>
</head>
<body>
<?php
$nom= $_POST['nom'];
$dateRapport=$_POST['daterapport'];
$courrielEtudiant=$_POST['courrielEtudiant'];
$courrielSup=$_POST['courrielSup'];
$heureArrivee=$_POST['heureArrivee'];
$heureDepart=$_POST['heureDepart'];
$total=$_POST['total'];
$taches=$_POST['taches'];
$connaissances=$_POST['connaissances'];
$aime=$_POST['aime'];
$pasAime=$_POST['pasAime'];
$senti= $_POST['senti'];
$incompetent=$_POST['incompetent'];
$competent=$_POST['competent'];
$informations=$_POST['informations'];
$commentaires=$_POST['commentaires'];
$sujet = "Journal de bord";
$From = "MIME-version: 1.0\n";
$From .= "Content-type: text/html; charset=utf-8' \n";
$From .= "From: $nom <$courrielEtudiant>'\r\n";
$message = stripslashes($message);
$message .= "<b>JOURNAL DE BORD</b> <br>";
$message .= " <b>Stagiaire :</b> $nom <br>";
$message .= " <b>Courriel :</b> $courrielEtudiant <br>";
$message .= "<hr>";
$message .= " <b>Date :</b> $_POST[daterapport]<br>";
$message .= " <b>Heure d'arrivée :</b> $heureArrivee - <b>Heure de départ :</b> $heureDepart - <b>TOTAL :</b> $total heures <br>";
$message .= "<hr>";
$message .= " <b>Tâches exécutées dans la journée :</b> <br>";
$message .= "$taches <br>";
$message .= "<hr>";
$message .= " <b>Qualités ou connaissances, en lien avec la formation, mises à profit aujourd'hui :</b> <br>";
$message .= "$connaissances <br>";
$message .= "<hr>";
$message .= "<b> Élément que l'étudiant a préféré dans sa journée :</b> <br>";
$message .= "$aime <br> ";
$message .= "<hr>";
$message .= " <b>Élément que l'étudiant a le moins aimé dans sa journée :</b> <br> ";
$message .= "$pasAime <br> ";
$message .= "<hr>";
$message .= "<b>Dans l'exercice de ses fonctions, l'étudiant s'est senti :</b> <br>";
$message .= "$senti <br> ";
$message .= "<hr>";
$message .= "<b> Élément pour lequel l'étudiant ne s'est pas senti compétent : </b><br> ";
$message .= "$incompetent <br> ";
$message .= "<hr>";
$message .= " <b>Élément pour lequel l'étudiant s'est senti compétent : </b><br>";
$message .= "$competent <br> ";
$message .= "<hr>";
$message .= "<b> L'étudiant aurait besoin d'un complément d'informations sur : </b> <br>";
$message .= "$informations <br>";
$message .= "<hr>";
$message .= " <b> Commentaires : </b><br> ";
$message .= "$commentaires <br>";
if(mail($courrielSup,$sujet, $message,$From))
{
echo "Le journal de bord a été envoyé à $courrielSup, $nom, $taches " ;
}
else
{
echo 'Votre journal de bord n\'a pu être envoyé';
}
mail($courrielEtudiant, $sujet, $message, $From)
?>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Validation de l'envoi</title>
</head>
<body>
<?php
$nom= $_POST['nom'];
$dateRapport=$_POST['daterapport'];
$courrielEtudiant=$_POST['courrielEtudiant'];
$courrielSup=$_POST['courrielSup'];
$heureArrivee=$_POST['heureArrivee'];
$heureDepart=$_POST['heureDepart'];
$total=$_POST['total'];
$taches=$_POST['taches'];
$connaissances=$_POST['connaissances'];
$aime=$_POST['aime'];
$pasAime=$_POST['pasAime'];
$senti= $_POST['senti'];
$incompetent=$_POST['incompetent'];
$competent=$_POST['competent'];
$informations=$_POST['informations'];
$commentaires=$_POST['commentaires'];
$sujet = "Journal de bord";
$From = "MIME-version: 1.0\n";
$From .= "Content-type: text/html; charset=utf-8' \n";
$From .= "From: $nom <$courrielEtudiant>'\r\n";
$message = stripslashes($message);
$message .= "<b>JOURNAL DE BORD</b> <br>";
$message .= " <b>Stagiaire :</b> $nom <br>";
$message .= " <b>Courriel :</b> $courrielEtudiant <br>";
$message .= "<hr>";
$message .= " <b>Date :</b> $_POST[daterapport]<br>";
$message .= " <b>Heure d'arrivée :</b> $heureArrivee - <b>Heure de départ :</b> $heureDepart - <b>TOTAL :</b> $total heures <br>";
$message .= "<hr>";
$message .= " <b>Tâches exécutées dans la journée :</b> <br>";
$message .= "$taches <br>";
$message .= "<hr>";
$message .= " <b>Qualités ou connaissances, en lien avec la formation, mises à profit aujourd'hui :</b> <br>";
$message .= "$connaissances <br>";
$message .= "<hr>";
$message .= "<b> Élément que l'étudiant a préféré dans sa journée :</b> <br>";
$message .= "$aime <br> ";
$message .= "<hr>";
$message .= " <b>Élément que l'étudiant a le moins aimé dans sa journée :</b> <br> ";
$message .= "$pasAime <br> ";
$message .= "<hr>";
$message .= "<b>Dans l'exercice de ses fonctions, l'étudiant s'est senti :</b> <br>";
$message .= "$senti <br> ";
$message .= "<hr>";
$message .= "<b> Élément pour lequel l'étudiant ne s'est pas senti compétent : </b><br> ";
$message .= "$incompetent <br> ";
$message .= "<hr>";
$message .= " <b>Élément pour lequel l'étudiant s'est senti compétent : </b><br>";
$message .= "$competent <br> ";
$message .= "<hr>";
$message .= "<b> L'étudiant aurait besoin d'un complément d'informations sur : </b> <br>";
$message .= "$informations <br>";
$message .= "<hr>";
$message .= " <b> Commentaires : </b><br> ";
$message .= "$commentaires <br>";
if(mail($courrielSup,$sujet, $message,$From))
{
echo "Le journal de bord a été envoyé à $courrielSup, $nom, $taches " ;
}
else
{
echo 'Votre journal de bord n\'a pu être envoyé';
}
mail($courrielEtudiant, $sujet, $message, $From)
?>
</body>
</html>
EminoMeneko
Messages postés
2435
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
23 mai 2018
318
Modifié par EminoMeneko le 17/05/2010 à 04:26
Modifié par EminoMeneko le 17/05/2010 à 04:26
Apparemment tu as fais tout ce qu'il faut de ton côté.
Est-ce que tu pourrais t'envoyer un mail et vérifier dans l'en-tête du mail que le charset est bien défini. ?
Je ne vois pas où le problème se cache. J'aurais vraiment tendance à dire que le problème ne vient pas de toi mais c'est bizarre que Google ait des problèmes vu que je reçois bien mes mails en japonais... :/
Juste une remarque en passant. Tu dois bien t'amuser à analyser ton code HTML. Tu ne fais jamais de saut de ligne ?
Un <br/> fait un saut de ligne sur la page mais pas dans le code.
Quand je faisais du PHP je me donnais la peine de faire en sorte qu'il y ait des indentations et des sauts de ligne. C'était plus ou moins fastidieux mais au moins j'avais un code propre et facile à analyser.
C'est juste un petit conseil perso.
Est-ce que tu pourrais t'envoyer un mail et vérifier dans l'en-tête du mail que le charset est bien défini. ?
Je ne vois pas où le problème se cache. J'aurais vraiment tendance à dire que le problème ne vient pas de toi mais c'est bizarre que Google ait des problèmes vu que je reçois bien mes mails en japonais... :/
Juste une remarque en passant. Tu dois bien t'amuser à analyser ton code HTML. Tu ne fais jamais de saut de ligne ?
Un <br/> fait un saut de ligne sur la page mais pas dans le code.
Quand je faisais du PHP je me donnais la peine de faire en sorte qu'il y ait des indentations et des sauts de ligne. C'était plus ou moins fastidieux mais au moins j'avais un code propre et facile à analyser.
C'est juste un petit conseil perso.