|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre régulier
![]() Inscription : avril 2005 Messages : 208 ![]() |
Bonjour,
Je génère un fichier XML pour faire mon flux RSS en PHP. Avec la réécriture d'URL, le lien vers le flux RSS est de la forme "rss.html". Cette page renvoi un fichier XML bien formé : Code :
Code :
D'où se problème peut-il venir ? Je pourrais facilement le contourner en générant le fichier autrement puis diriger le visiteur directement sur le fichier XML mais j'aimerais savoir pourquoi Safari ne fonctionne pas. Merci.
__________________
Mes sites : - Portail : http://denshichiro.free.fr - Warlords Battlecry 3 : http://warlordsbattlecry.free.fr - Littérature : http://livresethistoires.free.fr - Joueurs de Street Fighter 4: http://joueurs.sf4.free.fr |
||||
|
|
00
|
|
|
#2 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 709 ![]() |
Salut
Citation:
![]() Mais comme ça, as tu essayé de renommer le fichier (et le lien) par "rss.php" ? C'est peut être l'extension .html qui le dérange vu que le contenu n'est pas du HTML mais du XML. Théoriquement, il devrait plutôt s'appeler "rss.xml", et définir coté Apache que les fichier XML peuvent être interprétés par Php (ou juste celui ci), si ce flux est généré dynamiquement par Php. Enfin, théoriquement. Ceci dit, est ce que le lien ne comporterait pas une erreur ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : avril 2005 Messages : 208 ![]() |
J'ai essayé de renommer .html en .php et .xml mais ca ne change rien. Tant que c'ets PHP qui construit la requête, rien n'y fait, Safari me renvoi toujours l'erreur suivante :
"Safari ne parvient pas à ouvrir la page « feed://xxxxxxxxxxx/rss.html ». L’erreur est : « erreur inconnue » (CFURLErrorDomain:303) Choisissez Aide > Signaler un bogue à Apple, notez le numéro d’erreur et décrivez ce que vous avez fait avant l’affichage du présent message." Je pense qu'il doit attendre une en-tête spéciale en plus de Content-type. Pour se qui est de l'erreur sur le lien, ça fonctionne très bien avec les autres navigateurs. Je précise qu'il s'agit de Safari sur Windows 7.
__________________
Mes sites : - Portail : http://denshichiro.free.fr - Warlords Battlecry 3 : http://warlordsbattlecry.free.fr - Littérature : http://livresethistoires.free.fr - Joueurs de Street Fighter 4: http://joueurs.sf4.free.fr |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
ton feed est validé ?
http://validator.w3.org/feed/
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 709 ![]() |
Citation:
Il est comme ça le lien ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
oui sous safaris c'est comme ça, firefox les lit aussi
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 709 ![]() |
Citation:
Ne faudrait il alors que ça soit : feed://xxxxxxxxxxx/rss.rss ? Avec l’extension qui va avec ? C'est peut être Apache qui est déboussolé, et renverrait quelque chose ne non conforme ? Avec un URL comme http://xxxxxxxxxxx/rss.html, est ce que le problème est le même ? Citation:
Le Content-length ? Et sans aucune entête, ça donne quoi ? En tout cas, il est vrai qu'il faut au moins que le document RSS soit valide, conforme, quitte à faire un essai "en dur" basique d'abord.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
00
|
|
|
#8 | ||
|
Membre régulier
![]() Inscription : avril 2005 Messages : 208 ![]() |
C’est bon le problème est corrigé.
Pour ceux qui se heurteront au même problème, il suffit d'envoyer l'en-tête Content-Length afin que Safari traite correctement le flux. Code :
__________________
Mes sites : - Portail : http://denshichiro.free.fr - Warlords Battlecry 3 : http://warlordsbattlecry.free.fr - Littérature : http://livresethistoires.free.fr - Joueurs de Street Fighter 4: http://joueurs.sf4.free.fr |
||
|
|
00
|
|
|
#9 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
il est généré à la volé ton xml ? le contenu c'est quoi ? des articles ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#10 |
|
Membre régulier
![]() Inscription : avril 2005 Messages : 208 ![]() |
Grosso modo quand l'administrateur modifie un article, le fichier xml est supprimé.
Puis, quand un visiteur veut afficher le flux RSS, c'est en fait un fichier PHP qui est appelé. Ce fichier PHP test l'existence du fichier XML : - Si il existe alors il renvoi directement le contenu du fichier. - Si il n'existe pas, il interroge la base de données pour créer le fichier, puis il renvoi le contenu.
__________________
Mes sites : - Portail : http://denshichiro.free.fr - Warlords Battlecry 3 : http://warlordsbattlecry.free.fr - Littérature : http://livresethistoires.free.fr - Joueurs de Street Fighter 4: http://joueurs.sf4.free.fr |
|
|
00
|
|
|
#11 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
ton ça sert a rien se faire mb_strlen, puisque tu crées un fichier renvoie la taille du fichier
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#12 |
|
Membre régulier
![]() Inscription : avril 2005 Messages : 208 ![]() |
Oui je pourrais renvoyer directement la taille du fichier.
J'ai utilisé mb_strlen car le contenu du fichier est dans la variable.
__________________
Mes sites : - Portail : http://denshichiro.free.fr - Warlords Battlecry 3 : http://warlordsbattlecry.free.fr - Littérature : http://livresethistoires.free.fr - Joueurs de Street Fighter 4: http://joueurs.sf4.free.fr |
|
|
00
|
|
|
#13 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
ce n'est pas une bonne chose a faire, tu surcharges la mémoire pour rien.
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#14 |
|
Membre régulier
![]() Inscription : avril 2005 Messages : 208 ![]() |
Bon concernant le problème avec Safari finalement ça ne venait pas du tout des en-tête.
C'était dû au fait qu'il fallait s'identifier pour accéder au site (connexion géré par htaccess et htpasswd) et Safari ne l'accepte pas. Donc pour mon problème va disparaitre une fois le site public. Sinon pour répondre à stealth35, c’est stocké dans une variable car j'utilise le système de cache obstream. C'est sur que ça utilise de la mémoire supplémentaire, mais ça permet de gérer mes pages différemment.
__________________
Mes sites : - Portail : http://denshichiro.free.fr - Warlords Battlecry 3 : http://warlordsbattlecry.free.fr - Littérature : http://livresethistoires.free.fr - Joueurs de Street Fighter 4: http://joueurs.sf4.free.fr |
|
|
00
|
|
|
#15 |
|
Futur Membre du Club
![]() Développeuse Web Inscription : octobre 2011 Messages : 17 ![]() |
Salut, juste pour dire à ceux qui liront ça maintenant que de mon côté, c'était bel et bien les en-têtes. Mon site était déjà public et il n'y avait pas de conflit avec le .htaccess. L'ajout des en-tête - avec juste strlen() au lieu de mb_strlen() - a parfaitement fonctionné.
La seule chose bizarre c'est que ça s'est mis à arrêter de fonctionner sans raison apparente. Il y a peu, je lisais mon flux rss.php sans problème sous safari... A+ et merci de la trouvaille |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com