Pb de mise en page xhtml

J'ai un petit (enfin un gros) soucis avec les entête et les déclarations de page xhtml

si, comme la documentation l'indique et surtout si je veux avoir des sites qui réagisse à peu près de la même manière sous firefox et sous ie je dois placer en début de page la déclaration xml (ne me demandez pas pourquoi, j'ai pas tout compris) http://www.la-grange.net/w3c/xhtml1/#normative

<?xml version="1.0" encoding="utf-8" ?> enfin <?xml version="1.0" encoding="#CHARSET" ?>

Or spip n'aime pas cette déclaration, il me renvoi à mes études avec ce message

Parse error: parse error, unexpected T_STRING in /home/c/cogefip/www/castorsfrance.org/inc-public.php3(60) : eval()'d code on line 1

pour voir la différence, j'ai fabriqué deux fichiers représentant la structure de la page
1) sans la déclaration xml http://castorsfrance.org/testeur.html
2) avec http://castorsfrance.org/testeur-xml.html

une idée ?, spip peut-il accepter l'écriture avec la déclaration xml ?

merci

Claude

On Wed, 2005-12-14 at 13:33 +0100, cogefip wrote:

<?xml version="1.0" encoding="utf-8" ?> enfin <?xml version="1.0" encoding="#CHARSET" ?>
Or spip n'aime pas cette déclaration, il me renvoi à mes études avec ce message

  C'est pas spip qui rale, c'est php, parce qu'il crois que le <? est un
début de code php.
  Il faut le truander comme ça :
<?php echo '<'.'?xml version="1.0" encoding="utf-8" ?'.'>'; ?>

  Sinon, idéalement, si tu as la main sur la config, il faut dire au
php.ini de refuser les <? et de n'accepter que les <,php
  C'est un truc du genre (de tête) AllowShortOpenTag=no

--
À+, Pif

Lefebvre Christian a écrit :

On Wed, 2005-12-14 at 13:33 +0100, cogefip wrote:

<?xml version="1.0" encoding="utf-8" ?> enfin <?xml version="1.0" encoding="#CHARSET" ?>
Or spip n'aime pas cette déclaration, il me renvoi à mes études avec ce message

  C'est pas spip qui rale, c'est php, parce qu'il crois que le <? est un
début de code php.
  Il faut le truander comme ça :
<?php echo '<'.'?xml version="1.0" encoding="utf-8" ?'.'>'; ?>

  Sinon, idéalement, si tu as la main sur la config, il faut dire au
php.ini de refuser les <? et de n'accepter que les <,php
  C'est un truc du genre (de tête) AllowShortOpenTag=no

Merci Christian, pb résolu

Claude

cogefip a écrit :

J'ai un petit (enfin un gros) soucis avec les entête et les déclarations de page xhtml

si, comme la documentation l'indique et surtout si je veux avoir des sites qui réagisse à peu près de la même manière sous firefox et sous ie je dois placer en début de page la déclaration xml (ne me demandez pas pourquoi, j'ai pas tout compris) XHTML 1.0 : Le langage de balisage hypertexte extensible

<?xml version="1.0" encoding="utf-8" ?> enfin <?xml version="1.0" encoding="#CHARSET" ?>

Or spip n'aime pas cette déclaration, il me renvoi à mes études avec ce message

Parse error: parse error, unexpected T_STRING in /home/c/cogefip/www/castorsfrance.org/inc-public.php3(60) : eval()'d code on line 1

pour voir la différence, j'ai fabriqué deux fichiers représentant la structure de la page
1) sans la déclaration xml http://castorsfrance.org/testeur.html
2) avec http://castorsfrance.org/testeur-xml.html

une idée ?, spip peut-il accepter l'écriture avec la déclaration xml ?

Le problème ne vient pas de SPIP mais de php.
Le moteur php est configuré chez toi pour accepter aussi bien :
<? du code php ?> (écriture dépréciée)
<?php du code php ?> (écriture encouragée)

Donc, quand tu écrit : <?xml version="1.0" encoding="#CHARSET" ?>, le moteur php s'attend à trouver du php et gueule sur une erreur de syntaxe php

Solution : ragarde comment c'est fait dans backend.html de spip qui est un squelette qui renvoi du XML :

<?php echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.">\n"; ?>

--
Jacques — SPIP - Pyrat.net – Création de sites Internet

Jacques PYRAT a écrit :

cogefip a écrit :

J'ai un petit (enfin un gros) soucis avec les entête et les déclarations de page xhtml

si, comme la documentation l'indique et surtout si je veux avoir des sites qui réagisse à peu près de la même manière sous firefox et sous ie je dois placer en début de page la déclaration xml (ne me demandez pas pourquoi, j'ai pas tout compris) XHTML 1.0 : Le langage de balisage hypertexte extensible

<?xml version="1.0" encoding="utf-8" ?> enfin <?xml version="1.0" encoding="#CHARSET" ?>

Or spip n'aime pas cette déclaration, il me renvoi à mes études avec ce message

Parse error: parse error, unexpected T_STRING in /home/c/cogefip/www/castorsfrance.org/inc-public.php3(60) : eval()'d code on line 1

pour voir la différence, j'ai fabriqué deux fichiers représentant la structure de la page
1) sans la déclaration xml http://castorsfrance.org/testeur.html
2) avec http://castorsfrance.org/testeur-xml.html

une idée ?, spip peut-il accepter l'écriture avec la déclaration xml ?

Le problème ne vient pas de SPIP mais de php.
Le moteur php est configuré chez toi pour accepter aussi bien :
<? du code php ?> (écriture dépréciée)
<?php du code php ?> (écriture encouragée)

Donc, quand tu écrit : <?xml version="1.0" encoding="#CHARSET" ?>, le moteur php s'attend à trouver du php et gueule sur une erreur de syntaxe php

Solution : ragarde comment c'est fait dans backend.html de spip qui est un squelette qui renvoi du XML :

<?php echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.">\n"; ?>

Merci Jacques

Merci Jacques,

J'ai la possibilité de redéfinir des options par défaut sur le serveur, je vais plutôt comme le proposais Christian placer un fichier php.ini dans ma racine et dans ecrire. D'autant que c'est tidy qui n'aime pas le whitespace en début de fichier provoqué par, je suppose, <?php echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.">\n"; ?>

Claude

On Wed, 2005-12-14 at 13:56 +0100, cogefip wrote:

J'ai la possibilité de redéfinir des options par défaut sur le serveur, je vais plutôt
comme le proposais Christian placer un fichier php.ini dans ma racine et dans ecrire.

  le php.ini se met au même endroit que le httpd.conf à priori, pas dans
la racine du site.

D'autant que c'est tidy qui n'aime pas le whitespace en début de fichier provoqué par, je
suppose, <?php echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.">\n"; ?>

heu ... ça devrait pas :expressionless:

--
À+, Pif

cogefip wrote:

<?xml version="1.0" encoding="utf-8" ?> enfin <?xml version="1.0" encoding="#CHARSET" ?>

Or spip n'aime pas cette déclaration, il me renvoi à mes études avec ce message

Parse error: parse error, unexpected T_STRING in /home/c/cogefip/www/castorsfrance.org/inc-public.php3(60) : eval()'d code on line 1

Bonjour

<?php echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>"; ?>

Cf. par exemple <http://linuxfr.org/forums/21/4476.html&gt;

Cordialement

Françoise

--
Menaces sur le droit d'auteur et ses exceptions, dont la copie privée, et sur le logiciel libre :
Le gouvernement veut la faire passer en urgence avant Noël la loi sur les "Droits d'Auteur et Droits Voisins dans la Société de l'Information" (DADVSI)
Pour s'informer et pour AGIR : <http://eucd.info/index.php&gt;

Lefebvre Christian a écrit :

On Wed, 2005-12-14 at 13:56 +0100, cogefip wrote:

J'ai la possibilité de redéfinir des options par défaut sur le serveur, je vais plutôt comme le proposais Christian placer un fichier php.ini dans ma racine et dans ecrire.

  le php.ini se met au même endroit que le httpd.conf à priori, pas dans
la racine du site.

Je ne redéfini pas un php.ini, mon hébergeur me donne la possibilité de surcharger le php.ini général pour mon usage

D'autant que c'est tidy qui n'aime pas le whitespace en début de fichier provoqué par, je suppose, <?php echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.">\n"; ?>

heu ... ça devrait pas :expressionless:

ben si, une ligne vide avant

Claude

Lefebvre Christian a écrit :

On Wed, 2005-12-14 at 13:56 +0100, cogefip wrote:

J'ai la possibilité de redéfinir des options par défaut sur le serveur, je vais plutôt comme le proposais Christian placer un fichier php.ini dans ma racine et dans ecrire.

  le php.ini se met au même endroit que le httpd.conf à priori, pas dans
la racine du site.

D'autant que c'est tidy qui n'aime pas le whitespace en début de fichier provoqué par, je suppose, <?php echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.">\n"; ?>

heu ... ça devrait pas :expressionless:

Bien, j'ai testé toutes les méthodes, j'ai regardé beaucoup de site sous spip et d'autres classiques.

Il semble bien que spip envoie une ligne vide avant toutes les pages.

Ce n'est pas rédibitoire mais seulement gênant pour tidy (et la validation xhtml stricte) qui envoie un avertissement si on passe la ligne
<?php echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.">\n"; ?>
bien utile pour rendre plus facile l'usage de ie qui veux bien alors avoir un comportement plus proche de la norme.
Ne me demandez pas pourquoi, je ne le sais pas, c'est simplement un constat. Pour voir la différence chargez avec ie les pages de test
1) sans la déclaration xml http://castorsfrance.org/testeur.html
2) avec http://castorsfrance.org/testeur-xml.html
ces deux pages ne sont pas produitent par spip, elles n'ont donc pas la ligne vide au début de la page.

Y-a-t-il un moyen simple (pour les dev) de voir ce léger pb

Merci

Claude