Page 1 sur 1

empecher la mise en cache

Publié : 13 févr. 2006, 18:32
par rufio
bonjour.

Dans ma page j'ais mis :
<META HTTP-EQUIV="Expires" content="0">
<META HTTP-EQUIV="Pragma" content="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

ce qui empeche la mise en cache des images sous IE...

Mais probleme ca ne semble pas fonctrionner sur mozilla.
En effet, je viens de virer l'image en question et le navigateur continue a l'afficher.
donc question:
comment faire pour l'en empecher ???

Merci d'avance.

Publié : 13 févr. 2006, 18:36
par calimo
Ce que tu mets dans ta page HTML s'applique à la page elle-même. Normalement pas à son contenu.
Pour cela, il faut que ce soit l'image elle-même qui contienne cette définition. Pour ça, il faut envoyer les entêtes HTTP correspondantes (ça peut se faire aussi pour la page HTML) :wink:

Publié : 13 févr. 2006, 18:44
par rufio
peut tu me donner quelques details la je ne comprend toujours pas comment faire...

Publié : 13 févr. 2006, 18:47
par calimo
Il faut régler ton serveur pour envoyer ces entêtes. Et ça, ça dépend du serveur :wink:

Publié : 13 févr. 2006, 18:54
par rufio
pfff galere pour le developpement..
bon ben je vais voir ca.

Publié : 01 mars 2006, 13:55
par super-cool
rufio a écrit :pfff galere pour le developpement..
bon ben je vais voir ca.
salut

http://fr2.php.net/header

Exemple 5. Interdire la mise en cache avec header()

Code : Tout sélectionner

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date du passé
?> 
a copier dans le haut de la page, bien sur c'est du php et pas du html :)
++

Publié : 01 mars 2006, 21:34
par calimo
Et pour mettre ça dans une image… pas facile :|

Publié : 02 mars 2006, 17:42
par Bobe
Il faut faire ça via un .htaccess (je suppose que ton serveur http est Apache).

Par exemple, si tu as le mod_headers installé:

Code : Tout sélectionner

<Files ~ "\.(gif|jpe?g|png)$">
  Header set Cache-Control "no-cache, must-revalidate"
  Header set Pragma "no-cache"
  Header set Expires %D
</Files>
Dans le répertoire contenant tes images.
Pas sùr à 100% pour la ligne concernant Expires. À tester…

Publié : 02 mars 2006, 18:12
par martin
Il y a aussi peut être d'autres solutions suivant la nature du problème.

Ce que je veux dire c'est est ce que ces images changent en gardant le même nom ? Si oui pourquoi et comment ? Il y a peut être des paramètres que l'on peut mettre dans l'url, qui feront recharger quand nécessaire.
Si c'est pour protéger les images, c'est illusoire.

Publié : 02 mars 2006, 21:42
par epsy
salut,
calimo a écrit :Et pour mettre ça dans une image… pas facile :|
tatata, j'ai déja fait ce genre de choses des centaines de fois...

Code : Tout sélectionner

<?php
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date du passé
//definition du type de contenu
header("Content-Type: image/png");
//puis le contenu apres le "?>" de fin
?>

Publié : 02 mars 2006, 22:02
par Bobe
Ce n’est valable que pour des images générées avec la librairie GD par exemple (Évidemment, on peut imaginer un script qui se borne à lire le fichier image qu’on lui indique et retourner les données binaires en sortie mais ça n’a pas vraiment de sens alors que les solutions de non mise en cache existent au sein du serveur http…)

Publié : 16 juil. 2007, 17:48
par deadalnix
non, pas forcement, ca peut aussi de faire avec un readfile.

Je l'ai fait aps mal de fois pour faire des dynavatars ^^

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4

Publié : 16 juil. 2007, 18:07
par Benoit
C'est exactement ce que Bobe a écrit... il y a un an et demi.