OVH Cloud OVH Cloud

Le bon charset...

166 réponses
Avatar
METIS
Bonjour,
comme je ne suis pas un codeur fou, j'utilise Dreamweaver pour composer mes
pages (et non pas Bloc-notes(;o))).
Par défaut, le charset est...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Est-ce que c'est pertinent (en général) ?
Vous allez me dire que ça dépend...?
(;o)))))))))

--
<|[;o)) METIS
http://www.graphM.com
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Oranges...

10 réponses

Avatar
METIS
En complément, si quelqu'un peut m'expliquer à quoi servent ces lignes et si
elle sont utiles:

$nom=$HTTP_POST_VARS['nom'];
$email=$HTTP_POST_VARS['email'];

Rappel du ficher envoi2.php
-----------------------------
<?php
header('Content-Type: text/html; charset=UTF-8');

$nom=$HTTP_POST_VARS['nom'];
$email=$HTTP_POST_VARS['email'];

//voici la version Mine
//$headers = "MIME-Version: 1.0rn";
$headers = 'MIME-Version: 1.0'."n";

//ici on détermine le mail en format texte
$headers .= 'Content-type: text/plain; charset=UTF-8'."n";

//ici on détermine l'expediteur et l'adresse de réponse
$headers .= 'From: $nom <'.$email.'>'."n";

//Reply-to : a priori, il n'y en a pas besoin puisqu'on envoi l'email vers
nous même

$subject="Essai du charset";
$destinataire="";

$body="Essai du charsetnNom : $nomnPrénom : $prenomnEmail :
$emailnTéléphone : $telephone" ;
mail($destinataire,$subject,$body,$headers);

?>

--
<|[;o)) METIS
http://www.graphM.com
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Oranges...
Avatar
METIS
METIS wrote:
[...]
Je sens que je fatigue mon auditoire, non ? (;o)))
Alors je disais ceci et on va voir que ce n'est pas tout à fait la raison de
mes problèmes :

Avec ça, ça marche presque.
J'ai juste changé la façon d'écrire les $header :
Avant
$headers = "MIME-Version: 1.0rn";
Après
$headers = 'MIME-Version: 1.0'."n";



En fait, je n'ai pas le même résultat dans l'email envoyé, mais bon

J'ai obtenu ce presque bon fonctionnement parce que je suis reparti d'une
nouvelle page, tout simplement.
Mon fichier envoi.php sur lequel je fais des tas d'essai depuis le début,
d'après ce qu'on me dit, à été écrit pas dans le bon charset, OK.

Ce que je n'ai pas encore compris, c'est où ça se voit ?

En tout cas, j'ai fait l'expérience suivante, dans DW :
J'ai copié le code dans celui qui ne vas pas bien et j'ai collé dans un
nouveau document, DW étant réglé pour les Nouveau document en UTF-8. C'est
tout et là, ça marche !!!
Mais au niveau du code du fichier envoi.php, il n'y a aucune différence,
header et $headers sont toujours en UTF-8 (que j'avais remis avant).

Donc c'est une histoire d'entête HTTP ?
Comment je fais pour voir où ceci et enregistré ?
Comment je fais pour le changer ?
Quand vous écrivez des fichiers avec le Bloc-Notes, comment faites vous pour
fixer l'entête ?

--
<|[;o)) METIS
http://www.graphM.com
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Oranges...
Avatar
Michael DENIS
METIS a écrit :
Voilà :
[...]



Je n'y vois nulle part :

**************
Content-Type: text/plain; charset=utf-8
**************

Le mail ne contient donc pas de déclaration de l'encodage utilisé. C'est
donc au lecteur de courrier de choisir/détecter ce qu'il va afficher, ce
qui peut poser problème.

--
Michaël DENIS
Avatar
METIS
Michael DENIS wrote:
METIS a écrit :
Voilà :
[...]



Je n'y vois nulle part :

**************
Content-Type: text/plain; charset=utf-8
**************

Le mail ne contient donc pas de déclaration de l'encodage
utilisé. C'est donc au lecteur de courrier de choisir/détecter ce
qu'il va afficher, ce qui peut poser problème.



Le fichier envoi.php contient :
<?php
header('Content-Type: text/html; charset=UTF-8');
extract($_POST,EXTR_OVERWRITE);
if(isset($_POST['captchaResult']))
[..]
$headers .= "Content-type: text/plain; charset=UTF-8rn";
ou
$headers .= 'Content-type: text/plain; charset=UTF-8'."n";


--
<|[;o)) METIS
http://www.graphM.com
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Oranges...
Avatar
Michael DENIS
METIS a écrit :
Le fichier envoi.php contient :
<?php
header('Content-Type: text/html; charset=UTF-8');
extract($_POST,EXTR_OVERWRITE);
if(isset($_POST['captchaResult']))
[..]
$headers .= "Content-type: text/plain; charset=UTF-8rn";
ou
$headers .= 'Content-type: text/plain; charset=UTF-8'."n";



Je ne me suis pas attardé sur vos fichiers php, mais le fait est que le
mail dont vous avez mis une copie ne contient pas cette information et
que cela est un vrai problème potentiel.

--
Michaël DENIS
Avatar
Michael DENIS
METIS a écrit :
Le fichier envoi.php contient :
<?php
header('Content-Type: text/html; charset=UTF-8');
extract($_POST,EXTR_OVERWRITE);
if(isset($_POST['captchaResult']))
[..]
$headers .= "Content-type: text/plain; charset=UTF-8rn";
ou
$headers .= 'Content-type: text/plain; charset=UTF-8'."n";



Dans les fichiers source postés le 15, je vois surtout:

//$headers .= "Content-type: text/plain; charset=UTF-8rn";

La ligne n'est donc pas active, ce que confirme votre copie de mail.

--
Michaël DENIS
Avatar
METIS
Michael DENIS wrote:
METIS a écrit :
Le fichier envoi.php contient :
<?php
header('Content-Type: text/html; charset=UTF-8');
extract($_POST,EXTR_OVERWRITE);
if(isset($_POST['captchaResult']))
[..]
$headers .= "Content-type: text/plain; charset=UTF-8rn";
ou
$headers .= 'Content-type: text/plain; charset=UTF-8'."n";



Dans les fichiers source postés le 15, je vois surtout:

//$headers .= "Content-type: text/plain; charset=UTF-8rn";

La ligne n'est donc pas active, ce que confirme votre copie de
mail.



Ah oui.
Il est possible que je me sois emmélé les pinceaux car j'ai testé plusieurs
configurations, sans effacer la ligne mais du coup, erreur...
Mais je crois que je tiens le bon bout à force de tatonner.

--
<|[;o)) METIS
http://www.graphM.com
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Oranges...
Avatar
Obono
Le 17/12/08 11:01, dans 4948d104$0$18386$, « METIS »
a écrit :

Mais je crois que je tiens le bon bout à force de tatonner.



'tain, heureusement que t'es pas médecin-urgentiste !
Lollllllll;)
Avatar
METIS
Obono wrote:
Le 17/12/08 11:01, dans 4948d104$0$18386$,
« METIS » a écrit :

Mais je crois que je tiens le bon bout à force de tatonner.



'tain, heureusement que t'es pas médecin-urgentiste !
Lollllllll;)



Si, je suis urgentiste mais là, je me suis lancé dans la réfection d'un toit
et je sais pas faire...

Enfin ceci dit, vous avez l'air de bosser tous plus ou moins avec Bloc-Notes
ou un texteur de base et moi je suis obligé de bosser avec Dreamveaver
paskeu je m'y connais pas assez en code.
Et DW, au niveau entête, il fait des trucs que je ne peux pas contrôler.

C'est comme Photoshop si on va jamais dans les préférences, mais en pire.

--
<|[;o)) METIS
http://www.graphM.com
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Oranges...
Avatar
SAM
Le 12/17/08 3:05 PM, METIS a écrit :

Enfin ceci dit, vous avez l'air de bosser tous plus ou moins avec
Bloc-Notes ou un texteur de base et moi je suis obligé de bosser avec
Dreamveaver paskeu je m'y connais pas assez en code.



En compositeur wisiwig de pages web, il n'y a pas que DW au monde !

Et DW, au niveau entête, il fait des trucs que je ne peux pas contrôler.



DW, en local, ne fait *rien* au niveau des en-têtes !
Les en-têtes c'est le serveur qui s'en occupe.

Tu n'as pas l'air d'avoir encore capté la différence ente en-tête et
encodage ...

donc ...
- fichier html ou php fichier texte avec tout le blabla (codé en html ou en php)
- en-tete ce qui est envoyé au brouteur avant de lui envoyer le fichier
- encodage table de correspondance des caractères

L'encodage peut être spécifié dans :
- l'en-tete (c'est mieux) (en php assuré par la fonction header)
- le fichier (entre balises 'head') (c'est un pis-aller)

<?php
header('Content-Type: text/html; charset=utf-8');
?>
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8" />


Les fichiers doivent être réalisés dans cet encodage là.

C'est comme Photoshop si on va jamais dans les préférences, mais en pire.



Ça m'étonnerait que DW dans son menu "Affichage" ne te propose pas
"Encodage"
(autant même ça apparait dans la barre des tâches, la barre de status)
(en bas)

Komposer (wisiwig gratuit !) lui le fait !

Donc à partir de là,
- tu ouvres ton fichier à vérifier
- tu choisis l'encodage voulu dans le menu kivabien
(encodage correspondant à celui que tu prévoies pour tes en-têtes)
- tu vérifies que tout s'affiche bien
- tu passes en mode "code" pour voir s'il y a un meta
et qu'il parle bien du même encodage
- tu enregistres ton fichier

Voilà, tu devrais avoir un fichier bienCommeIlfaut.


Côté php ... là si tu ne comprends pas non plus ce que les lignes de
code copiées-collées racontent ... c'est sûr que ça n'aide pas !

pourtant il n'y a qu'à aller ici :
<http://fr.php.net/manual/fr/index.php>
taper le mot que tu ne comprends pas dans le champs de recherche
et hop! :
<http://fr.php.net/manual/fr/function.header.php>
<http://fr.php.net/manual/fr/function.mail.php>

--
sm