Aller au contenu

[RESOLU] Bug IE et PHP (refresh page)


ggbce

Messages recommandés

---- La méthode écrit sur mon dernier message du sujet répond à la question ! ----

Pour ceux qui utilise PHP et ont des usagers avec IE, vous connaissez surement le fameux problème de rafraichissement des pages qui ne se fait pas tout le temps avec les champs de formulaires et les variables.

Juste pour se mettre en contexte:

Dans une page contenant une liste, on sélectionne un élément X qui ouvre une nouvelle page dans une nouvelle fenêtre ou un iframe, on édite cet élément puis on enregistre le tout en envoyant le formulaire. En retournant sur la page initiale (où la liste des éléments se trouve) les modifications ne sont pas là !!! Si on rafraichit la page (actualiser) les nouvelles données sont alors disponibles.

Ce problème n'existe pas avec FireFox.

J'ai réussi à contourner ce problème pour IE, mais ça ne fonctionne que lorsque la nouvelle page pour éditer mon élément se trouve dans une nouvelle fenêtre (_blank). J'ajoute dans le <body> une fonction de refresh de la page parent !

---- C'était une méthode pas terrible, mais qui forçait IE a ré-évaluer le contenu de la page pour faire le rafraichissement ----

Voici comment j'écris la commande:

<body onunload="parent.window.opener.location.reload();window.close()">

De cette manière, la page parent est rafraichit et la page actuelle est fermée lors d'un événement "onunload" (lors du submit).

Mais dans le cas où l'édition de l'élément se fait dans un iframe qui est le même iframe de la page initiale, ça ne marche pas. En réalité, je cherche à savoir comment rafraichir automatiquement les données le page initiale lorsque je décharge la page d'édition.

J'ai essayé avec un window.opener.location.reload() ou self.window.opener.location.reload() mais ces commandes ne semble pas avoir d'effet.

Lien vers le commentaire
Partager sur d’autres sites

Je n'ai jamais dit que c'était PHP le problème, j'ai dis que c'était l'utilisation de IE avec PHP... car FireFox ne fait pas le problème.

C'est que IE semble conserver en mémoire la page précédente, même si celle-ci est une page dynamique .php !

Si la page PHP a changé son contenu, IE n'affichera pas le nouveau contenu... à moins de le forcer en faisant Actualiser (ou dans le cas d'une édition du contenu depuis une autre page dans un autre fenêtre comme expliqué en faisant un reload parent window).

Si t'as déjà fait du PHP et que tu as des usagers avec IE t'as déjà rencontré ce problème...

Lien vers le commentaire
Partager sur d’autres sites

Tu as essayé en envoyant des entêtes pour indiquer la mise à jour de la page et qu'il faut vider le cache? (plutôt que de passer par du javascript

Est-ce que tu as un p'tit exemple d'entête ? Merci !

Pourtant par défaut dans Apache les entêtes de "no pragma cache" sont envoyés tout le temps ?

Lien vers le commentaire
Partager sur d’autres sites

rajoute ca dans ton html

<meta http-equiv="expires" content="0"> 

Voila ce que ca veut dire

Avec <meta http-equiv="expires" content="0"> vous faites en sorte que l'ordinateur serveur commande au navigateur qui l'appelle de charger dans tous les cas ce fichier HTML de l'adresse d'origine (expires = expirer).

Pour content= vous pouvez à la place de 0 dans ce contexte mentionner une date précise avec un horaire. Ainsi vous faîtes en sorte que les données de ce fichier devront après l'échéance dans tous les cas être chargées à partir du serveur d'origine. La date et l'heure doivent être mentionnées dans un format international. exemple: content="Sat, 15 Dec 2001 12:00:00 GMT". Notez l'heure comme dans l'exemple avec tous les espaces, doubles points entre les heures, les minutes et les secondes ainsi que la mention GMT à la fin. Pour les noms de jours de la semaine sont permis Mon (lundi), Tue (mardi), Wed (mercredi), Thu (jeudi), Fri (vendredi), Sat (samedi) et Sun (dimanche). Pour les noms de mois sont permis Jan (janvier), Feb (février), Mar (mars), Apr (avril), May (mai), Jun (juin), Jul (juillet), Aug (août), Sep (septembre), Oct (octobre), Nov (novembre) et Dec (décembre).

À la place du 0 vous pouvez aussi mentionner un chiffre. Ce chiffre signifie alors un nombre de secondes après lesquelles un navigateur Web qui a un fichier dans le cache chargera à nouveau dans tous les cas ce fichier du serveur. Avec content="43200" vous réglez par exemple cette valeur sur 12 heures.

si tu cherche d'autres options méta

source de balise méta

Normalement on a plus besoin de cette ligne, doit y avoir un paramètre quelque part au niveau naviveau navigateur mais j'en doute

pour moi le serveur php doit avoir une option qui prévient le navigateur de recharger obligatoirement la page

de rien :love:

Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois après...

Simplement pour fermer ce vieux sujet que j'avais fait.

Pour 'véritablement' corriger le problème de rafraîchissement des pages avec IE, on doit aller dans les options Général, depuis le bouton pour la gestion des options de la cache (fichiers temporaires) on doit modifier le contrôle de rafraîchissement de la cache de 'automatique' à 'chaque visite de la page'.

Ce bug n'est surement pas visible avec les pages 'HTML' mais existant... parce ce sont des pages fixes. Tandis que le PHP est dynamique et le contenu peut changer simplement en passant d'une et en y revenant ensuite... mais IE semble avoir de la difficulté à gérer ça en mode automatique. Donc en utilisant l'option de rafraichissement forcé à chaque visite de la page ça fonctionne bien. Ce problème n'est pas survenu avec des pages en ASP c'est probablement car c'est du Microsoft... et il doit y avoir une insctruction spéciale dans IE quand il rencontre du ASP mais ça on ne le saura jamais.

P.S. J'ai continué le sujet dans un autre message du forum parce que je veux résoudre le problème de façon massive pour tout les visiteurs de mon site. Pour la méthode manuelle c'est écrit ci-haut, mais pas très pratique si on veut changer les options des visiteurs du site... c'est comme impossible.

Lien vers le sujet suivant: http://www.pcinpact.com/forum/index.php?showtopic=83147&hl=

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...