[html/javascript/php] comment forcer un refresh ?

comment forcer un refresh ? [html/javascript/php] - Programmation

Marsh Posté le 03-06-2001 à 22:49:47    

càd comment faire lorsqu'un visiteur arrive sur le site, pour que celui-ci recharge automatiquement les dernières modifications (depuis l'heure précédente par exemple)
 
l'équivalent de la touche F5 en somme !
 
une idée ?
 
merci

Reply

Marsh Posté le 03-06-2001 à 22:49:47   

Reply

Marsh Posté le 03-06-2001 à 23:02:53    

rajoutes des headers au tout début de ton .php :
 
<?
header("Expires: Thu, 01 Jan 2000 00:00:01 GMT" );
header("Last-Modified: " . gmdate("D, d M Y H:i:s" ) . " GMT" );
header("Cache-Control: no-cache, must-revalidate" );
header("Pragma: no-cache" );
?>

Reply

Marsh Posté le 04-06-2001 à 13:28:42    

merci youdontcare, mais malheureusement ça ne marche pas :-(
 
p-e de ma faute pas été assez précis, alors voilà + d'explications :
 
c'est une page html/php qui est lancée par un clic sur un lien du genre
 
<A HREF="truc.php">cliquez ici</A>
 
cette page html contient en résumé
 
<HTML>
<?
   ce script PHP modifie le contenu d'une image, disons image.gif
?>
<IMG SRC="image.gif">
</HTML>
 
et par exemple si on re-clique sur le lien 10 minutes après, et malgré que l'image soit modifiée par exemple toutes les deux minutes, et bien c'est toujours l'ancienne image qui est affichée. La seule façon d'avoir la nouvelle image c'est de faire F5 (raffraîchir)
 
donc la question c'est : existe-t-il un moyen pour que chaque fois que la page est appelée, qu'elle soit automatiquement complètement rechargée ? merci

Reply

Marsh Posté le 04-06-2001 à 14:05:51    

les headers plus haut forcent le browser à rafraîchir le code sorti par le .php .
 
comment modifies tu ton image ? si tu passes par gd, et que tu as un autre .php qui la modifie, tu peux faire <img src='creationimage.php'> et dans ce .php, rajouter ces headers plus un header("Content-Type: image/gif" ) (ou qq chose d'approchant).
 
sinon je vois pas bien comment faire ... si tu modifies ton image autrement, modifies aussi la date.

Reply

Marsh Posté le 04-06-2001 à 17:43:32    

oui avec GD 1.6.2+
 
le pb ne vient pas du php, l'image est correctement générée à chaque fois, c'est Internet Explorer qui déconne !!! en fait à mon avis il a une sorte de mémoire tampon, et quand il voit qu'une image se trouve dans cette mémoire et bien il l'affiche bêtement, alors que moi je voudrais qu'il aille d'office chercher la dernière version sur le net, et si parfois c'est la même tant pis !
 
bref, ce que je cherche c'est une commande qui fasse exactement la même chose que quand vous appuyez avec votre petit doigt sur la touche F5 !
 
sinon je n'aurai pas d'autres choix que de mettre en-haut de ma page le texte "n'oubliez pas d'appuyer sur F5 pour réactualiser cette page !" mais je trouve ça horrible...
 
please, help ! :)

Reply

Marsh Posté le 04-06-2001 à 18:03:57    

yep les problèmes de browser, grosse galère ... mes premiers tests php marchaient sans les headers au dessus car j'avais ie5.5. sous ie5, gros plantage :)
 
la solution bourrine qui marchera a tous les coups, c'est qu'à chaque fois que tu changes l'image, tu lui donnes un nouveau nom. tu peux rajouter un timestamp de l'heure courante par ex ... si ton image est générée à chaque visite de la page, ce n'est pas un gros problème. sinon il faudra mettre le nom de l'image dans une table sql.
 
autre chose, qui a l'air de marcher, c'est mettre une url au pif, par ex toujours à base d'un timestamp. ça contournera le cache, par contre je ne garantis ni la compatibilité ni la beauté de la chose :D
 
donc si ton image générée s'appelle 'gen.gif', tu mets echo "<img src='gen.gif?$timestamp'>" avec $timestamp = un timestamp unix, ou n'importe quelle string aléatoire.
 
de cette façon, ton .php génerera à chaque visite (n'oublie pas les headers ci dessus pour que ta page soit rechargée à chaque fois) une 'nouvelle' url, qui pointera en fait tj vers la même image.
 
c'est absolument infâme, mais ça devrait marcher. ensuite, si tu trouves mieux, balances sur ce forum.

Reply

Marsh Posté le 04-06-2001 à 18:12:21    

deuxième réponse, car ça m'étonne ... tu dis que "ce n'est pas php qui déconne". non, c'est clair ! rajouter les headers HTTP en php permet justement de préciser au browser "ne cache pas cette url". et ça, ça marche impec, c'est choppé direct de la mailing list officielle.  
 
donc si tu génères ton image dans un .php, pourquoi le rajout de ces headers ne marche pas ? l'image sortie par le .php précisera au browser de ne pas cacher l'image, justement. t'as testé ?

Reply

Marsh Posté le 04-06-2001 à 18:18:19    

tout ce que je sais c que en javascript tu peut recharger les images

Reply

Marsh Posté le 04-06-2001 à 21:44:44    

non définitivement les headers sont apparemment incompatibles, ça ne change rien et en plus ça me sort un tas de warnings épouvantables :
 
Warning: Cannot add header information - headers already sent by (output started at blabla...)
 
mais par contre le truc de changer de nom à chaque fois lui il marche à la perfection, c'est infaillible !!! :)
 
merci !

Reply

Marsh Posté le 05-06-2001 à 14:18:56    

John74 a écrit a écrit :

non définitivement les headers sont apparemment incompatibles, ça ne change rien et en plus ça me sort un tas de warnings épouvantables :
 
Warning: Cannot add header information - headers already sent by (output started at blabla...)
 
mais par contre le truc de changer de nom à chaque fois lui il marche à la perfection, c'est infaillible !!! :)
 
merci !




 
 
ca ca veux dire qu'il y a eu affichage d'un caractere avant ton header :
 
verifie qu'ya pas un espace avant le premier <?php ou meme un retour a la ligne...

Reply

Sujets relatifs:

Leave a Replay

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