Incompabilité xhtml et php

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Antoinei
Arias
Messages : 17
Inscription : 30 avr. 2004, 17:17

Incompabilité xhtml et php

Message par Antoinei »

Bonjour,

J'ai créé une page en xhtml et je lui ai donné l'extension php car j'ai l'intention d'y insérer des scripts php. Mais, quand j'essaye d'afficher cette page j'obtiens un message d'erreur, car la première ligne "<?xml version="1.0" encoding="iso-8859-1"?>" est interprétée comme du php.
Y a-t-il une solution à ce problème ?

Merci d'avance, Antoine
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Code : Tout sélectionner

echo"<?xml version="1.0" encoding="iso-8859-1"?>";
:wink:

EDIT : j'allais oublier : fais attention à ne pas laisser d'espace ou d'autres caractères (retour à la ligne) avant le prologue xml :wink:
Antoinei
Arias
Messages : 17
Inscription : 30 avr. 2004, 17:17

Message par Antoinei »

J'aurais pas imaginé que c'était aussi simple que ça :) !

edit : y avait juste une petite erreur dans ton code ! pour echo, faut mettre des "guillemets simples" sinon ça marche pas !

Code : Tout sélectionner

<? echo'<?xml version="1.0" encoding="iso-8859-1"?>'; ?>
Merci !
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Ah, erreur en effet : guillemets simples ou protéger les guillemets doubles

Code : Tout sélectionner

echo"<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>";
:oops:
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Juste une remarque, cette ligne est facultative en XHTML et fait passer Internet Explorer en mode non (certains diront encore moins) standard. Donc c'est peut-être mieux de la laisser tomber tout à fait.
Xanthor
Lézard à collerette
Messages : 280
Inscription : 29 juil. 2003, 18:36

Message par Xanthor »

Si c'est un serveur sur lequel tu peux modifier la config, tyu peux demander à PHP de ne s'occuper que de ses PI (<?php) au lieu de toutes chercher à les interpreter...
Antoinei
Arias
Messages : 17
Inscription : 30 avr. 2004, 17:17

Message par Antoinei »

Benoit a écrit :Juste une remarque, cette ligne est facultative en XHTML et fait passer Internet Explorer en mode non (certains diront encore moins) standard. Donc c'est peut-être mieux de la laisser tomber tout à fait.
Ah bon ? Pourtant dans un article d'Openweb (article) , il est dit de le mettre ????

Xanthor a écrit :Si c'est un serveur sur lequel tu peux modifier la config, tyu peux demander à PHP de ne s'occuper que de ses PI (<?php) au lieu de toutes chercher à les interpreter...
Non, c'est chez un hébergeur !

Antoine
Bobe
Iguane
Messages : 742
Inscription : 28 juil. 2003, 21:29

Message par Bobe »

Antoinei a écrit : Ah bon ? Pourtant dans un article d'Openweb (article) , il est dit de le mettre ????
Il le faut le mettre si:
  • La page est envoyée en application/xhtml+xml
  • L'encodage du document est différent de UTF-8 et UTF-16
« La vie d’un geek est un combat perpétuel contre l’imperfection »
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Pour ça tu peux utiliser le code suivant :

Code : Tout sélectionner

if( stristr($HTTP_SERVER_VARS["HTTP_ACCEPT"], "application/xhtml+xml") )
	   {
		  header("Content-Type: application/xhtml+xml");
		  echo "<?xml version='1.0' encoding='utf-8'?>\n";
	   }
Antoinei
Arias
Messages : 17
Inscription : 30 avr. 2004, 17:17

Message par Antoinei »

Bonjour,

Merci pour vos réponses, mais là je suis un peu paumé, je sais plus ce que je dois mettre ou pas .....

Antoine
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Si tu mets le dernier code indiqué par Calimo ça devrait prendre en compte tout ce qu'on a dit avant :)
Antoinei
Arias
Messages : 17
Inscription : 30 avr. 2004, 17:17

Message par Antoinei »

D'accord et merci à tous ! :D

Antoine
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Oui effectivement, tu mets ce code en haut de ta page (sans laisser d'espaces avant) et tout se fait automatiquement : la page est envoyée comme une page html à tous les anciens navigateurs (IEx, NS4- et cie) et c'est un très beau xhtml qui est envoyé à tous les autres !
Antoinei
Arias
Messages : 17
Inscription : 30 avr. 2004, 17:17

Message par Antoinei »

Donc j'ai fait les différentes modifs, de telle sorte que ma page commence comme ça

Code : Tout sélectionner

if( stristr($HTTP_SERVER_VARS["HTTP_ACCEPT"], "application/xhtml+xml") )
      {
        header("Content-Type: application/xhtml+xml");
        echo "<?xml version='1.0' encoding='iso-8859-1'?>\n";
      }
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
mais quand j'essaye de faire valider ma page, j'obtiens le message d'erreur "Fatal Error: No DOCTYPE specified!" !!??

Edit : j'ai aussi ça quand je veux visualier la page
"Parse error: parse error, unexpected T_STRING in D:\serveur\site\antoine\index.php on line 4"
Dernière modification par Antoinei le 01 mai 2004, 18:38, modifié 1 fois.
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Oui, le doctype tu dois le mettre en dehors du php :wink:

Code : Tout sélectionner

<?php if( stristr($HTTP_SERVER_VARS["HTTP_ACCEPT"], "application/xhtml+xml") )
      {
        header("Content-Type: application/xhtml+xml");
        echo "<?xml version='1.0' encoding='iso-8859-1'?>\n";
      }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités