Actualización de imágenes - inhibir cache
En PHP, un gráfico .png, que se actualiza desde una base de datos MySQL, no se modifica la imagen cuando pido nuevos datos, si no pulso las teclas Control + F5.
La programación, esquemáticamente, es la siguiente:
<html>
<head> <title>... </title> </head>
<body bgcolor="#9999CC">
<?php
...
$fp = fopen("pic.png","wr+");
$img = ImageCreate(700,450);
...
ImagePNG($img,"pic.png");
ImageDestroy($img);
?>
<img src="pic.png" align="right" hspace="5" vspace="0" border="1" />
</body>
</html>
La programación, esquemáticamente, es la siguiente:
<html>
<head> <title>... </title> </head>
<body bgcolor="#9999CC">
<?php
...
$fp = fopen("pic.png","wr+");
$img = ImageCreate(700,450);
...
ImagePNG($img,"pic.png");
ImageDestroy($img);
?>
<img src="pic.png" align="right" hspace="5" vspace="0" border="1" />
</body>
</html>
Con estas lineas inhibes la cache. recuerda que deben ir antes que cualquier salida se produzca
// Fecha en el pasado
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
// siempre modificado
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
// HTTP/1.0
header("Pragma: no-cache");
// Fecha en el pasado
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
// siempre modificado
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
// HTTP/1.0
header("Pragma: no-cache");
