Validation XHTML = character "" not allowed in prolog

Validation XHTML = character "" not allowed in prolog - HTML/CSS - Programmation

Marsh Posté le 24-03-2006 à 10:58:33    

Hello :)
 
Tout est dans le titre. J'essai de valider mon site pour le XHTML sur validator.w3.org.
 
J'ai toujours cet erreur :

Citation :

Error  Line 1 column 0: character "" not allowed in prolog.
 
���<?xml version="1.0" encoding="utf-8"?>


Je vois vraiment pas d'où viennes ces 3 caractères bizarre au début, alors qu'ils ne sont vraiment pas dans mon code... vous avez des idées ? Vous pouvez vérifier directement sur mon site : http://www.meow.fr. Dans la source ces caractères n'y sont à priori pas.
 
Je vous remercie !


Message édité par TigrouMeow le 24-03-2006 à 10:59:36
Reply

Marsh Posté le 24-03-2006 à 10:58:33   

Reply

Marsh Posté le 24-03-2006 à 12:27:15    

C'est l'encodage....

Reply

Marsh Posté le 24-03-2006 à 12:34:30    

C'est à dire ? J'utilise smarty, c'est lui qui génère mes pages aussi... t'as pas un tip sur ce que je dois vérifier exactement ?

Reply

Marsh Posté le 24-03-2006 à 12:41:47    

Moi je suis pas le roi de l'encodage ;)
 
Teste en mettant : charset=iso-8859-1
 
Bon aprés c'est pas dis que tes caractéres chinoix s'affiche...Ben vois...et dis moi :D

Reply

Marsh Posté le 24-03-2006 à 12:44:07    

En fait j'ai déjà essayé ça, mais le problème est pas là... il est avant... c'est les petites merdouilles ��� qui posent problèmes ! :( Et je sais pas d'où elles peuvent venir...

Reply

Marsh Posté le 24-03-2006 à 12:51:45    

ben en cas édit le fichier et sauve le ...
 
ça doit être à ce moment là que ça merde ;)
 
il y a quoi pour ces signes, des espaces si je me trompe, efface les ...

Reply

Marsh Posté le 24-03-2006 à 13:06:37    

Non ça serait trop simple :(

Reply

Marsh Posté le 24-03-2006 à 15:29:00    

Avec un éditeur hexa :

EF BB BF EF BB BF EF BB BF 3C 21 44 4F 43 54 59


Ce qui commence à 3C 21... correspond à <!DOCT....
 
Les séries de 3 octets similaires du début (EF BB BF) correspondent au BOM (Byte Order Mask) d'un document encodé en UTF-8. C'est un machin qui sert par exemple à indiquer que ton document est en UTF-8, au cas où...  
Dans les autres encodages, ça peut servir pour indiquer si on est en little ou en big endian (pas en utf-8, où l'ordre des bits est toujours pareil).
 
DONC... Regarde dans ton éditeur de texte si t'as pas une case cochée genre "Save BOM" ou un truc dans l'genre...

Reply

Marsh Posté le 25-03-2006 à 07:13:47    

En fait j'utilise à la fois du PHP et Smarty, en plus de ça j'ai même un eaccelerator qui tourne, donc ce sont partout des pages générées... en même temps, les pages en php (et smarty) sont sauvées sans cette fameuse BOM... :( Donc je sais pas du tout d'où ça vient !

Reply

Marsh Posté le 26-03-2006 à 08:41:08    

Aucune idée ?

Reply

Marsh Posté le 26-03-2006 à 08:41:08   

Reply

Marsh Posté le 01-04-2006 à 16:48:48    

Vous pensez que ça peut venir d'Apache ? ou de PHP ?

Reply

Marsh Posté le 11-04-2006 à 21:11:50    

Non ca vient bien des header envoyé. J'ai le même problème que toi.
En fait c'est cela qui déconne : on envoie  
Content-Type: text/html; charset=UTF-8
alors qu'on doit envoyer
Content-Type: text/xhtml+xml; charset=UTF-8
 
Il existe deux plugins à installer pour corriger cela en théorie
Le plugin fonction html_doctype et le plugin filtre de sortie : prepareforoutput.
 
J'essaie de comprendre comment ça marche et je te dis cela si je trouve.
Pour les plugins, il suffit de copier coller le code source dans le répertoire plugins de smarty et de nommer le premier fichier function.html_doctype.php et le second outputfilter.prepareforoutput.php
 
Je regarde le fonctionnement du premier , suffit de mettre {html_doctype} dans ton template d'entete...
Là je galère pour comprendre comment l'filtre de sortie marche...


Message édité par Alexandre T le 11-04-2006 à 21:12:29
Reply

Marsh Posté le 11-04-2006 à 23:12:39    

text/xhtml+xml n'existe pas. Le type valide pour l'XHTML est application/xhtml+xml. Et quand on envoie avec ce type mime, Explorer n'affiche plus la page, mais une boîte de dialogue proposant de télécharger la page :(

Reply

Marsh Posté le 11-04-2006 à 23:57:04    

FlorentG a écrit :

text/xhtml+xml n'existe pas. Le type valide pour l'XHTML est application/xhtml+xml. Et quand on envoie avec ce type mime, Explorer n'affiche plus la page, mais une boîte de dialogue proposant de télécharger la page :(


ha c'est pour ça que gmail marche pas sous IE :D
j'ai a chaque fois 36 fenetre "enregistrer sous" qui s'ouvrent quand je le fais a la fac  :lol:

Reply

Marsh Posté le 12-04-2006 à 00:17:08    

mea culpa... un mauvais copier coller, je n'ai pas écrit ce que je pensais.
 
Je pensais bien à :
Content-Type: text/html; charset=UTF-8
alors qu'on doit envoyer
Content-Type: application/xhtml+xml; charset=UTF-8  
 
sous ie le plugin dont je parle envoie bien le format text/html et sous mozilla application/xhtml+xml
 
Par contre ca commence à m'embêter voici mon cache en hexa juste avant le 3C 21
ÿþÿþÿþÿþ<
FF FE FF FE FF FE FF FE
 
Par contre quand j'aouvre mon source sous IE je vois bien les trois caractères bizarres (qui n'apparaissent pas en Mozilla mais sont présents)
Ca m'énerve de ne pas comprendre...


Message édité par Alexandre T le 12-04-2006 à 00:17:38
Reply

Marsh Posté le 14-04-2006 à 20:53:24    

J'ai trouvé !
 
Ce fut difficile !
 
En fait, mon fichier php qui appelle smarty est enregistré en UTF-8 avec Ultraedit32
 
Quand je converti le fichier de Unix à dos et de UTF-8 à ASCII cela fonctionne. (et je laisse l'encode en UTF-8 et les headers !)
 
Je croyais avoir compris l'encodage... Finalement, non ! Toujours rien compris...

Reply

Marsh Posté le 18-04-2006 à 07:31:12    

Concrètement tu as réglé le problème comment ? J'ai essayé d'enregistrer mon index.php et mon news.php en ASCII avec des terminateurs DOS, mais bon le ASCII me glande totalement ma page et elle se transforme rien qu'en caractères chinois... (je précise d'ailleurs : mon système windows est en chinois). Il doit bien y avoir une solution pour ce problème c'est trop bizarre ! C'est la faute à smarty alors ?


Message édité par TigrouMeow le 18-04-2006 à 07:33:24
Reply

Marsh Posté le 04-05-2006 à 10:29:21    

Le, truc, c'est de dire à UltraEdit de ne pas inclure le BOM lors de l'enregistrement

Reply

Sujets relatifs:

Leave a Replay

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