ggbce Posté(e) le 20 janvier 2006 Partager Posté(e) le 20 janvier 2006 ---- 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 More sharing options...
tsubasaleguedin Posté(e) le 20 janvier 2006 Partager Posté(e) le 20 janvier 2006 Php est coté serveur et est totalement independant du client, donc le bug incrimené et soit ton html généré ou soit le javascript mais en aucun cas php. Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 20 janvier 2006 Auteur Partager Posté(e) le 20 janvier 2006 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 More sharing options...
fabien29200 Posté(e) le 20 janvier 2006 Partager Posté(e) le 20 janvier 2006 Tu veux dire qu'une page avec l'extension .html est bien gérée, alors qu'une page avec l'extension .php n'est plus gérée pareil ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Baldurien Posté(e) le 20 janvier 2006 Partager Posté(e) le 20 janvier 2006 Je comprend pas le problème? Du tout même? 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) Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 23 janvier 2006 Auteur Partager Posté(e) le 23 janvier 2006 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 More sharing options...
Baldurien Posté(e) le 23 janvier 2006 Partager Posté(e) le 23 janvier 2006 Je ne m'y connais pas en cache et truc du genre, et je dirais que c'est à l'utilisateur de se débrouiller, mais tu peux lire http://www.php.net/header Ce sera un bon point de départ. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Helfima Posté(e) le 24 janvier 2006 Partager Posté(e) le 24 janvier 2006 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 21 mai 2006 Auteur Partager Posté(e) le 21 mai 2006 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 More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.