Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1274 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Probleme de mise à jour, cache navigateur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme de mise à jour, cache navigateur

n°1346579
weed
Posté le 14-04-2006 à 02:03:40  profilanswer
 

bonjour,  
 
voilou, j'ai un petit souci.
Sur ma page d'aministration, je peux uploader des images mais il y a un probleme de cache. Je vous explique.
 
Je vous explique.  
 
Sur ma page ajout.php, je selectionne mon image.  
Une fois fois que j'ai selectionné mon image, cela déclenche mon evenement javascript onChange qui envoie l'image au fichier ajout_traitement.php.  
Dans le fichier ajout_traitement.php, je copie mon uploader vers /images/tmp/image1.jpeg (avec le nom image2.jpeg dans un repertoire temporaire) et je me reredirige avec un header vers ajout.php.  
La photo ajouté apparait ainsi sur la ajout.php.
 
http://fuma001.free.fr/snag/up.jpeg
 
Donc je recapitule :
ajout.php => ajout_traitement.php => ajout.php
 
 
Je termine de completer mon formulaire et tout en bas, de mon formulaire je clique sur le bouton "Nouvel Enregistrement".  Cela m'envoie de nouveau vers ajout_traitement, mais ce coup ci, je copie toutes mes données dans une base de donnée et je copie toutes mes images (pace que comme vous avez pu le voire sur le screen, je peux envoyer jusqu'a 4 images)
/images/tmp/image1.jpeg
/images/tmp/image2.jpeg
/images/tmp/image3.jpeg
/images/tmp/image4.jpeg
vers un autre repertoire ......
 
 
Le problème, c'est que lorsque je fais tout de suite apres la meme manip pour rajouter un autre enregistrement :  
- je selectionne mon image
- mon image est envoyé vers ajout_traitement.php et est copié vers /images/tmp/image1.jpeg puis je suis redirigé vers ajout.php
- mon image apparrait.  
 
Mais le souci c'est que l'image qui apparait dans ajout.php, c'est l'ancienne image. Lorsque je fais F5 sous Firefox, la nouvelle image apparait.  
 
Le souci, c'est que c'est une image temporaire qui porte un nom identique à chaque fois, et donc firefox la garde dans son cache à chaque fois.
 
 
Avant la reredirection vers ajout.php, j'ai essayé :

header("Cache-Control: no-cache, must-revalidate" ); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );


mais cela n'a pas l'air de fonctionner :(


Message édité par weed le 14-04-2006 à 09:07:56
mood
Publicité
Posté le 14-04-2006 à 02:03:40  profilanswer
 

n°1346600
Djebel1
Nul professionnel
Posté le 14-04-2006 à 07:39:22  profilanswer
 

au cas tu peux contourner le probleme en générant une partie du nom de l'image de manière aléatoire

n°1346627
weed
Posté le 14-04-2006 à 09:11:27  profilanswer
 

arf cela me complique la vie le nom aléatoire .....
 
sinon, j'avais pensé faire un update de la page, l'équivalent de F5 lorsque je suis rereredirigé vers ajout.php avec du javascript ...
 
C'est pas tres propre, mais bon, s'il n'y a pas d'autre choix ....

n°1346742
weed
Posté le 14-04-2006 à 11:15:56  profilanswer
 

personne a d'idée ?
je me suis planté dans mon header ?

n°1346896
Ricco
Retour au pays
Posté le 14-04-2006 à 14:19:48  profilanswer
 

Le problème viens pas de ajout.php, ça vient de l'image qui a la meme url.
Change le nom de l'image ou rajoute un parametre bidon genre 'image_tmp.jpg?time=' . time() ;
Ca devrait suffire.


Message édité par Ricco le 14-04-2006 à 14:20:08

---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
n°1346937
weed
Posté le 14-04-2006 à 15:11:02  profilanswer
 

ca marche nickel, merci mais j'aimerais connaitre la raison  
 
le probleme vient en effet de l'image qui porte la meme url. on est d'accord la dessus.  
 
Mais est ce que ce n'est pas parce que Firefox a mis en cache la l'image ?
lorsque l'on consulte la meme page, pour accelerer l'affichage, Firefox mets en cache les images.
 
Ce que je pensais faire, c'est au moment de reredirigé vers ajout.php, de passer des informations dans l'entete http par un header, dire  à Firefox que cette page est expiré et que tu dois la recharger.

n°1347139
misterping​uin
Posté le 14-04-2006 à 19:32:23  profilanswer
 

weed a écrit :

ca marche nickel, merci mais j'aimerais connaitre la raison  
 
le probleme vient en effet de l'image qui porte la meme url. on est d'accord la dessus.  
 
Mais est ce que ce n'est pas parce que Firefox a mis en cache la l'image ?
lorsque l'on consulte la meme page, pour accelerer l'affichage, Firefox mets en cache les images.
 
Ce que je pensais faire, c'est au moment de reredirigé vers ajout.php, de passer des informations dans l'entete http par un header, dire  à Firefox que cette page est expiré et que tu dois la recharger.


 
oui cela vient du cache.
 
ajoute :

Code :
  1. header("Pragma: nocache" ); avant header("Cache-Control: no-cache, must-revalidate" ); // HTTP/1.1


 
mais tu ne feras toujours qu'envoyer des entetes que le navigateur interprete comme il veut...


Message édité par misterpinguin le 14-04-2006 à 19:32:37
n°1347272
weed
Posté le 14-04-2006 à 23:34:57  profilanswer
 

c'est a dire comment ?
si je demande au navigateur que cette page ne doit pas utiliser de cache, il ne va pas l'utiliser.
 
c'est vrai que comme c'est le client, on n'est pas sur à 100% que l'internaute n'a pas trifouiller son navigateur pour prendre en compte le parametre nocache de l'entete http

n°1347292
Ricco
Retour au pays
Posté le 15-04-2006 à 00:00:23  profilanswer
 

Enfin, pê que les info contenu dans le header du .php concerne uniquement la page en elle même, et pas les images ou les autre pages php qu'elle peut pointer.
Il faudrait pê changer les headers des images en elle-même pour avoir ce comportement.


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
n°1347315
nargy
Posté le 15-04-2006 à 01:43:02  profilanswer
 

> Il faudrait pê changer les headers des images en elle-même pour avoir ce comportement.
- c'est même sûr!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Probleme de mise à jour, cache navigateur

 

Sujets relatifs
probleme avec substrMysql -> Dom Xml -> Dom Xst -> problème avec les accents
Table problèmeProbleme de sérialisation XML de collection d'objets VB .Net
problème phpmailerProbleme de compilation erreur, aider moi svp
[JavaScript] Problème avec mon Cookie[résolu]Probléme de comparaison de checkbox
[perl embed] Probleme socket[JAVA3D] problème de transparence
Plus de sujets relatifs à : Probleme de mise à jour, cache navigateur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR