Foros del Web » Programando para Internet » PHP »

Cómo evitar el cache ?

Estas en el tema de Cómo evitar el cache ? en el foro de PHP en Foros del Web. Busqué bastante y en varios lugares hablan de poner headers o <META> pero nada me funciona. Hice una página que administra fotos cambiandole los nombres ...
  #1 (permalink)  
Antiguo 28/12/2008, 20:09
Rodre
Invitado
 
Mensajes: n/a
Puntos:
Cómo evitar el cache ?

Busqué bastante y en varios lugares hablan de poner headers o <META> pero nada me funciona. Hice una página que administra fotos cambiandole los nombres a los archivos. Entonces se tiene que refrescar en cada cambio y no agarrar del cache. Me anda perfecta toda la aplicación salvo eso. Es como que los dos pirmeros intentos funciona, refresca bien, y al 3ro 4to empieza a tomat desde el cache, porque en la página no se ven cambios, pero me fijo con el explorador de windows y los nombres cambiaron.

Probé varias formas con headers y tags META pero nada me funciona. Si borro el cache del firefox por ejemplo desde las opciones, y hago refresh, pasa lo que tendría que pasar.

Espero su ayuda, Gracias.
  #2 (permalink)  
Antiguo 29/12/2008, 06:14
 
Fecha de Ingreso: septiembre-2007
Mensajes: 59
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Cómo evitar el cache ?

Si es con PHP puedes hacer algo asi:

Código:
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
  #3 (permalink)  
Antiguo 29/12/2008, 12:08
Rodre
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cómo evitar el cache ?

No funciona. Probé de mil maneras poner headers y meta tags pero nada funciona. Dejo el código a ver si alguien puede dar con la solución.

Gracias por la ayuda.

Codigo Galeria:

Código PHP:
<?
header
("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0"false);
header("Pragma: no-cache");
session_start();
if(
$_SESSION['validate']!= 1){
  
Header("location: login.php");
  }
if (
$_SESSION['reload'] == true){
  
$_SESSION['reload'] = false;
  
$test "caca";
  echo 
"<META HTTP-EQUIV='refresh' CONTENT='0'; URL='mportraits.php'>";
}
echo 
$test;
?>
<html>
<head>
<title>Administrar Fotos</title>
<link rel="stylesheet" type="text/css" href="manage.css">
<script type="text/javascript">
var numero = 0;
function adelante(numero){
  document.location='adelante.php?num='+numero;
}
</script>
</head>
<body>
<div class="divcontenedor">
  <div class="divlinks">
    <table class="tablalinks">
      <tr>
        <td><a href="mcommercial.php">Commercial</a></td>
        <td class="separadorlinks">&nbsp;</td>
        <td><a href="mlandscapes.php">Landscapes</a></td>
        <td class="separadorlinks">&nbsp;</td>
        <td class="tdactivo">Portraits</td>
        <td class="separadorlinks">&nbsp;</td>
        <td><a href="manalogic.php">Analogic</a></td>
        <td class="separadorlinks">&nbsp;</td>
        <td><a href="mmore.php">More</a></td>
      </tr>
    </table>
  </div>
  <div class="divfotos">
    <table class="tablafotos">
    <? 
    $dir 
"fotos/tportraits";
    
$cant=0;
    if (
is_dir($dir)) {
      if (
$gd opendir($dir)) {
        while ((
$archivo readdir($gd)) !== false) {
          
$cant++; 
        }
        
closedir($gd);
      }
    }
    
$cant $cant -2;
    
$fotonum 100;
    
$lim $cant/7;
    
$lim2 100+$cant;
    for(
$i=0;$i<$lim;$i++){
    echo 
"<tr>";
      for(
$j=0;$j<6;$j++){
        if(
$fotonum<$lim2){
          echo 
"<td class='tdfotos'><img src='fotos/tportraits/t".$fotonum.".jpg'><br>";
          echo 
$fotonum;
          echo 
"<span class='spanmover' onclick='adelante(".$fotonum.")'>&nbsp;></span>";
          echo 
"</td>";
          
$fotonum++;
        }else{
          break;  
        }
      }
      echo 
"</tr>";
    }
    
?>
    </table>
  </div>
</div>
</body>
</html>
Codigo rename:

Código PHP:
<?
header
("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0"false);
header("Pragma: no-cache");
session_start();
$_SESSION['reload'] = true;
$num $_GET['num'];
$ad $_GET['num'] +1;
rename("fotos/tportraits/t".$num.".jpg","fotos/tportraits/trans.jpg");
rename("fotos/tportraits/t".$ad.".jpg","fotos/tportraits/t".$num.".jpg");
rename("fotos/tportraits/trans.jpg","fotos/tportraits/t".$ad.".jpg");
header("location: mportraits.php");
?>
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 07:08.