PHP, XML et IE ... des trucs zarbi

PHP, XML et IE ... des trucs zarbi - PHP - Programmation

Marsh Posté le 22-11-2004 à 18:26:07    

j'ai un code PHP qui génère un flux xml (par ex : echo "<toto>fkfji>/toto>" ), mom xml est bien généré et IE m'affiche une belle arborescence ... bref nickel, je test mon programme ... tjrs nickel, puis tout un coup je fais un petit reload du script php et hop plus rien, juste une partie de mon xml qui s'affiche comme un vulgaire texte !!! je ferme IE, je l'ouvre a nouveau et pareil ... je recommence l'opération et ça remarche, puis ça ne marche plus ???
 
est-ce que IE est connu pour gérer aléatoirement le XML ????
 
(certain me diront "ben oui, c'est un produit Crosoft avec bug inside)

Reply

Marsh Posté le 22-11-2004 à 18:26:07   

Reply

Marsh Posté le 22-11-2004 à 18:30:11    

Et avec un autre navigateur çà donne quoi?

Reply

Marsh Posté le 22-11-2004 à 18:35:53    

manatane a écrit :

Et avec un autre navigateur çà donne quoi?


 
Firefox lit les fichiers XML mais ne sait pas le faire pour les flux XML, il m'affiche donc tout sous la forme d'un joli texte.
 
ce qui est étrange c'est que des fois ça marche et des fois ça ne marche pas, sans toucher au code, en plus le XML est valide sinon ça ne marcherait jamais.

Reply

Marsh Posté le 22-11-2004 à 18:41:23    

C'est quoi ton XML? du RSS
Tu as essayé de le parser?

Reply

Marsh Posté le 22-11-2004 à 18:48:39    

awanagain a écrit :

Firefox lit les fichiers XML mais ne sait pas le faire pour les flux XML, il m'affiche donc tout sous la forme d'un joli texte.


 
il faut lui préciser le type via header
 
text/xml


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 23-11-2004 à 07:35:33    

simogeo a écrit :

il faut lui préciser le type via header
 
text/xml


 
voici la premiere ligne de mon fichier XML :  
<?xml version="1.0" encoding="UTF-8"?>
 
ca devrait lui suffire, de plus soit ça marche soit ça ne marche pas, bref c'est binaire avec un ou exclusif !! hors dans mon cas des fois ça marche et des fois ça ne marche pas ...

Reply

Marsh Posté le 23-11-2004 à 09:16:59    

oui mais ton php qui génère ca, tu lui dit de transmettre les headers? (man header())

Reply

Marsh Posté le 23-11-2004 à 09:22:46    

bob007 a écrit :

oui mais ton php qui génère ca, tu lui dit de transmettre les headers? (man header())


 
euh ... non, un petit bout de code pour m'éclairer ???
 
... ce que je trouve qd meme etrange c'est que mon code tourne sur un autre site, le site est en prod et tout est nickel.

Reply

Marsh Posté le 23-11-2004 à 09:27:20    

Code :
  1. header("Content-type: application/xml" );


 
essai si ca marche pas avec text/xml au lieu de application/xml
 
Tu mets cette ligne la ou ton code génère le xml, juste avant la premier ligne de ton xml

Reply

Marsh Posté le 23-11-2004 à 10:18:09    

bob007 a écrit :

Code :
  1. header("Content-type: application/xml" );


 
essai si ca marche pas avec text/xml au lieu de application/xml
 
Tu mets cette ligne la ou ton code génère le xml, juste avant la premier ligne de ton xml


 
ni l'un ni l'autre ne fonctionne  :??:  
 
voici la partie de mon code qui nous interesse :
 

// generate xml
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
echo "<root>\n";  
//writeXMLTag("sql", $query);
while($row=mysql_fetch_array($result)){  
 echo "<event>";
 writeXMLTag("id_event", $row['id_event']);
 writeXMLTag("title_zh", htmlspecialchars(utf8_ensure($row['name_chi'])));
 writeXMLTag("title_en", htmlspecialchars(utf8_ensure($row['name_gb'])));
 writeXMLTag("title_jp", htmlspecialchars(utf8_ensure($row['name_jp'])));
 writeXMLTag("id_main_category", $row['id_main_category']);
 echo "</event>";
}
echo "</root>";


 
la fct writeXMLTag :

function writeXMLTag($tagName, $value) {
 echo "<" . $tagName . ">" . $value . "</" . $tagName . ">";  
}


 
voici l'url pour accéder à ce programme (vous verrez plus loin pourquoi je la donne) :
http://localhost/ce/all/events/exp [...] 12&idCat=4
 
quand j'accède directement par cette url j'obtiens une jolie page vide, par contre la source de la page contient bien le fichier xml et si je copie le code dans un fichier texte et je l'enregistre en toto.xml puis je l'ouvre dans IE ... j'obtiens bien mon fichier XML (arboresecnce correcte) ... donc le flux xml est correctement créé, mais IE ne veut pas l'afficher, enfin pas tout le temps car des fois il l'affiche ...
 
maintenant je met les 3 lignes en commentaires :
 

writeXMLTag("title_zh", htmlspecialchars(utf8_ensure($row['name_chi'])));
 writeXMLTag("title_en", htmlspecialchars(utf8_ensure($row['name_gb'])));
 writeXMLTag("title_jp", htmlspecialchars(utf8_ensure($row['name_jp'])));


 
et je fais Reload ... et miracle l'arboresence des données apparait ...
 
je supprime un commentaire, je fais Reload et ça marche encore, ainsi de suite jusqu'a ce qu'il n'y ai plus de commentaire, au final j'ai bien ce que je veux ... cool me direz-vous, oui ... mais non.
 
j'ai ce que je veux, l'url de ma page est tjrs http://localhost/ce/all/events/exp [...] 12&idCat=4, bref c'est bien ce que je veux, maintenant je copie cette url, je fais un ctrl + N pour avoir un nouveau navigateur, je colle l'url et ... retour a la case départ.
 
où est le problème ???????????????????????????


Message édité par awanagain le 23-11-2004 à 10:19:47
Reply

Marsh Posté le 23-11-2004 à 10:18:09   

Reply

Marsh Posté le 23-11-2004 à 11:21:19    

oué c un coup de header, mais alors pourquoi ni l'un ni l'autre ne marche ???
Tu l'as bien mis avant ton echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";  ???

Reply

Marsh Posté le 23-11-2004 à 11:44:13    

bob007 a écrit :

oué c un coup de header, mais alors pourquoi ni l'un ni l'autre ne marche ???
Tu l'as bien mis avant ton echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";  ???


 
oui je l'ai mis avant

Reply

Marsh Posté le 23-11-2004 à 11:46:14    

url :o


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 23-11-2004 à 12:48:14    

Reply

Marsh Posté le 23-11-2004 à 14:10:41    

bah donne l'url du site qu'on test ca! :)

Reply

Marsh Posté le 23-11-2004 à 15:30:47    

bob007 a écrit :

bah donne l'url du site qu'on test ca! :)


 
c'est une admin ... donc pas de test possible pour vous !!

Reply

Marsh Posté le 23-11-2004 à 15:44:24    

ah bah ca c pas d'chance lol

Reply

Marsh Posté le 23-11-2004 à 15:48:26    

awanagain > tu as quel navigateur ?
Vérifies le type de la page avec FF
 
je suis sur que ca fonctionne avec le type text/xml :o


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 23-11-2004 à 17:46:29    

simogeo a écrit :

awanagain > tu as quel navigateur ?
Vérifies le type de la page avec FF
 
je suis sur que ca fonctionne avec le type text/xml :o


 
j'utilise IE et Firefox, c'est quoi FF ?????

Reply

Marsh Posté le 23-11-2004 à 17:49:35    

awanagain a écrit :

j'utilise IE et Firefox, c'est quoi FF ?????


 
FF == firfox [:itm]
 
avec FF, sur ta page, clic droit > view Page Info > et ecris ici ce que renvoie Type !
 
merci


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 23-11-2004 à 17:54:22    

simogeo a écrit :

FF == firfox [:itm]
 
avec FF, sur ta page, clic droit > view Page Info > et ecris ici ce que renvoie Type !
 
merci


 
STOPPPPPPPPPPPPP !!
c'est résolu !!
merci a bob007 et simogeo ... il fallait effectiment ajouté la ligne header(...), ca marche avec application/xml et text/xml
 
lors de mon premier essais ça n'avait pas marché car je m'etais un peu planté dans la syntaxe !!
 
merci encore et je vous communiquerai l'url de l'appli quand la version grand public sera dispo.

Reply

Marsh Posté le 24-11-2004 à 09:02:29    

hé bah voila! :)
 
y'a pas de quoi mon poulet! :D

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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