Foros del Web » Programando para Internet » PHP »

Problema con un tema del FAQ (Evitar que una imagen quede en la Caché del navegador)

Estas en el tema de Problema con un tema del FAQ (Evitar que una imagen quede en la Caché del navegador) en el foro de PHP en Foros del Web. Hola que tal. Vereis, soy un novato en php y estoy intentando armar un codigo siguiendo las indicaciones del FAQ. Evitar que una imagen quede ...
  #1 (permalink)  
Antiguo 14/05/2012, 13:20
 
Fecha de Ingreso: mayo-2012
Mensajes: 28
Antigüedad: 12 años, 7 meses
Puntos: 0
Problema con un tema del FAQ (Evitar que una imagen quede en la Caché del navegador)

Hola que tal.
Vereis, soy un novato en php y estoy intentando armar un codigo siguiendo las indicaciones del FAQ. Evitar que una imagen quede en la Caché del navegador

http://www.forosdelweb.com/wiki/PHP:_Evitar_que_una_imagen_quede_en_la_Cach%C3%A9_ del_navegador

El caso es que la cosa parece sencilla, pero para un novato como yo, no lo es tanto.

en el index.php tengo esto:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<img src="ver_imagen.php?imagen=Render_001.png">
<img src="ver_imagen.php?imagen=Render_002.png">
<img src="Render_003.png">
<img src="ver_imagen.php?imagen=Render_004.png">
</body>
</html>

y un php externo en el mismo directorio que el index, de nombre ver_imagen.php con el siguiente codigo:

Código:
<?php
 
// Directorio donde buscaremos la imagen
$camino = "./img";
 
// Cabecera de imagen
header("Content-Type: image/png"); // En este caso es jpeg, 
// pero se podría cambiar por la que nos interese.
 
// Cabeceras de NO CACHE
header( "Expires: Mon, 20 Dec 1998 01:00:00 GMT" );
header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
header( "Cache-Control: no-cache, must-revalidate" );
header( "Pragma: no-cache" );
 
// Leemos la imágen
@readfile($camino.$_GET['imagen']);
 
?>
Mi intencion es cargar tres imagenes mediante las indicaciones del FAQ y una de manera normal para poder comprobar que solo se guarda una imagen en cache, pero algo estoy haciendo mal que no funciona (de hecho no me carga las imagenes cargadas mediante <img src="ver_imagen.php?imagen=)

Alguien puede darme unas indicaciones por favor?

Muchas gracias

Un saludo
  #2 (permalink)  
Antiguo 14/05/2012, 13:29
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Problema con un tema del FAQ (Evitar que una imagen quede en la Caché del

Si sólo pretendes que las imágenes no queden en cache, no creo que necesites un sistema tan "complejo", pudiendo hacerlo más o menos así:

<img src="ruta_imagen/imagen.jpg?<?php echo time();?>">

donde <?php echo time();?> agrega el tiempo actual, por lo que a cada segundo cambia y por tanto no cachea. En el html verías algo así:

<img src="ruta_imagen/imagen.jpg?1335862800">
  #3 (permalink)  
Antiguo 14/05/2012, 13:31
 
Fecha de Ingreso: mayo-2012
Mensajes: 28
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema con un tema del FAQ (Evitar que una imagen quede en la Caché del

Bueno, el caso es que he corregido el index y ahora me carga las imagenes (le faltaba una barra diagonal al src), pero las imagenes aparecen en el cache y se supone que no ¿no?

Lo estoy probando en local con xamp y cuando voy a about:cache, ahi estan las imagenes.

Código:
about:cache

http://localhost/favicon.ico
http://localhost/Pruebas/Evitar_Cache/ver_imagen.php?imagen=/Render_004.png
http://localhost/Pruebas/Evitar_Cache/ver_imagen.php?imagen=/Render_002.png
http://localhost/Pruebas/Evitar_Cache/ver_imagen.php?imagen=/Render_001.png
http://localhost/Pruebas/Evitar_Cache/img/Render_003.png

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<img src="ver_imagen.php?imagen=/Render_001.png">
<img src="ver_imagen.php?imagen=/Render_002.png">
<img src="img/Render_003.png">
<img src="ver_imagen.php?imagen=/Render_004.png">
</body>
</html>
  #4 (permalink)  
Antiguo 14/05/2012, 13:35
 
Fecha de Ingreso: mayo-2012
Mensajes: 28
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema con un tema del FAQ (Evitar que una imagen quede en la Caché del

Gracias por responder.

Entiendo lo que comentas, pero mi intencion es reutilizar la imagen, con lo que necesito saber en todo momento el nombre de la imagen para llamarla de nuevo.

Podrias ayudarme por favor? En principio el codigo no parece tan complejo, pero el tema es que no me funciona.


gracias de nuevo.

Un saludo
  #5 (permalink)  
Antiguo 14/05/2012, 13:35
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Problema con un tema del FAQ (Evitar que una imagen quede en la Caché del

Por que seguramente el navegador cachea las imágenes, aunque cada vez que llames la página recargue la caché.
  #6 (permalink)  
Antiguo 14/05/2012, 13:46
 
Fecha de Ingreso: mayo-2012
Mensajes: 28
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema con un tema del FAQ (Evitar que una imagen quede en la Caché del

Ammm ok. Entonces si te he entendido bien, si yo recargara el navegador, el cache sobrescribiria esa cache?

Y solo rescribiria las imagenes que yo llame mediante el ver_imagen.php ¿no?

la que llame directamente permanece en el cache?

Si es eso es exactamente lo que busco.


Tengo otra duda idiota si alguien fuera tan amable de responderme.

Imaginemos que tengo una web compleja que consta de varios php que se cargan a medida que navegamos por las secciones, dentro de una index.php (como una plantilla joomla o wordpress)

Si yo quiero llamar a ese ver_imagen.php en varios de los php, tendria que hacer un include?, esque tengo duda de en que ruta tendria que guardar ese ver_imagen.php para luego llamarlo.


gracias

Un saludo
  #7 (permalink)  
Antiguo 14/05/2012, 14:08
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Problema con un tema del FAQ (Evitar que una imagen quede en la Caché del

Si el index llama a los demás php, podrías incluir dentro de index el ver_imagen.php, así sólo lo incluirías una sola vez. Dónde colocarlo dependerá mucho de tu organización, en los personal yo manejo ese tipo de script como "librerías", por tanto las coloco en /lib/php/

así desde el indez hago el include (aunque uso rquire_once) como require_once("lib/php/milibreria.php");
  #8 (permalink)  
Antiguo 14/05/2012, 14:19
 
Fecha de Ingreso: mayo-2012
Mensajes: 28
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema con un tema del FAQ (Evitar que una imagen quede en la Caché del

gracias. Voy a intentarlo.

Un saludo

Etiquetas: faq, html, imagenes, quede, tema
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:29.