Le flush de PHP ne fonctinne pas sous IE7

Résolu
pleblanc Messages postés 3 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 13 juillet 2009 - 10 juil. 2009 à 15:20
pleblanc Messages postés 3 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 13 juillet 2009 - 13 juil. 2009 à 08:48
Bonjour,
Je veux que le navigateur commence à afficher des messages alors même que la page n'est pas totalement chargée.
En fait j'ai une boucle php, avec une petite tempo, et je veux qu'à chaque passage un message s'affiche à l'écran.
Ca marche super sous Firefox mais pas sousIE7.
IE7 mets les messages en cache et attend la fin du script pour tout afficher d'un seul coup.
Vous pouvez tester ce script et voir le code source sur
http://www.caplaser.fr/sitesclients/midiporc/php/flush.php


Dans le php.ini j'ai bien output_buffering <gras>Off et zlib.output_compression Off</gras>
J'ai testé sur un serveur IIS et sur un Apache, même souci.
Ce qui est bizarre c'est que si je lance la page depuis mon localhost, ça marche avec IE7, mais dès que je mets en ligne ça marche plus.
Merci pour votre aide!

Patrick Leblanc

2 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
10 juil. 2009 à 18:58
Salut,

Je n'ai pas IE7 sous la main mais à première vue ça fonctionne sous IE8.

Ce que je ferais :
- mettre un ob_start();
- ajouter une valeur aléatoire au nom du fichier :
flush.php?truc=valeurUniqueAléatoire
de manière à se préserver de toute mise en cache
- ajouter des caractères aux lignes renvoyées pour que chaque flush envoie au minimum 256 caractères (test avec 512 si ça ne change rien). Certains navigateurs bufferisent la trame avant l'affichage, ou attendent la fermeture d'une balise :
echo "
Loop $i in progress...[256 car]
";

Test chacune de ces solutions et dis nous "quoi"

Quel est le but exact de ce script ? Je pose la question car il y a de grandes chances que ta solution soit loin d'être la meilleure. Il ne faut pas oublier ton "for" bloque le script pendant 6 secondes.

Cordialement,

Kohntark -
3
pleblanc Messages postés 3 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 13 juillet 2009
13 juil. 2009 à 08:48
Salut Kohntark et merci pour ta réponse.

Info de dernière minute :
après 3 jours (véridique!) passés à essayer de faire marcher mon script, j'ai enfin trouvé la cause de mon problème : l'antivirus SOPHOS sur ma machine. Comme nous avons tous le même antivirus dans la boîte, tous les autres postes présentaient le même symptôme que le mien.
Nous en avons parlé avec le service technique de Sophos qui nous a conseillé de désactiver le module complémentaire "Sophos Web Content Scanner", celui-ci présentant un bug sous IE qui sera corrigé fin août...
Je l'ai donc désactivé, et youpi, tout fonctionne!

Patrick Leblanc
0
Rejoignez-nous