Home > Archive > PHP Language > November 2005 > php gd prevent caching
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
php gd prevent caching
|
|
| dave Cheseldine 2005-11-22, 6:56 pm |
| Hi
I want to stop a gd generated image from being cached.
It is called into index.php file as follows:
<image src =
"http://www.daveches.co.uk/importimage/importimage.php?x=$randomNumber"
alt = "battle area" usemap="#battlegrid" border="0">
(importimage4real.php contains the gd functionality that load and modify
the image).
The random number querystring in the code above is an attempt to trick
the browser into thinking the image is different from what it has in
its cache. But still it displays its cached version of the image.
I have tried every "stop caching" header I can think of in both
index.php and importimage.php, set expires to a time in the past and all
the rest. Still, refresh the browser: you get the cached, not the
latest, image (same in ie6 and Firefox). After a few minutes something
expires and you do get the latest version by Refreshing, but this is no
good for my application.
Is it possible that some settings on my hosting company's server are
overwriting any changes I can make?
dave Cheseldine
| |
| Mike Willbanks 2005-11-24, 9:55 pm |
| dave,
> I have tried every "stop caching" header I can think of in both
> index.php and importimage.php, set expires to a time in the past and all
> the rest. Still, refresh the browser: you get the cached, not the
> latest, image (same in ie6 and Firefox). After a few minutes something
> expires and you do get the latest version by Refreshing, but this is no
> good for my application.
Are you sure you are using all of the correct headers?
header('Pragma: no-cache');
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
Mike
| |
| Connector5 2005-11-25, 3:55 am |
| And also, dont use the same expiry/modified on each load:
// Expire the image 1 year before it's being viewed, and make it modified 2
minutes ago
header("Last-Modified: " . date(DATE_RFC822, time() - 120));
header("Expires: " . date(DATE_RFC822, time() - (3600 * 24 * 365)));
It's trivial and minor, but you never know.
One final option: Use a bit of javascript onload to refresh the image on
the client side.
"Mike Willbanks" <pencap@gmail.com> wrote in message
news:tduhf.729$DW6.59@fe03.lga...
> dave,
>
>
> Are you sure you are using all of the correct headers?
>
> header('Pragma: no-cache');
> header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
> header("Cache-Control: private",false);
> header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
>
> Mike
|
|
|
|
|