Foros del Web » Programando para Internet » PHP »

problema con cache

Estas en el tema de problema con cache en el foro de PHP en Foros del Web. hola. estoy usando un código que dio cluster ya hace tiempo para no cache: Código PHP: <?     header ( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );                           header ( "Last-Modified: "  ...
  #1 (permalink)  
Antiguo 25/07/2003, 18:38
Avatar de Maycol  
Fecha de Ingreso: diciembre-2001
Ubicación: Ávila (España)
Mensajes: 539
Antigüedad: 16 años
Puntos: 0
problema con cache

hola.
estoy usando un código que dio cluster ya hace tiempo para no cache:

Código PHP:
<?
    header
("Expires: Mon, 26 Jul 1997 05: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");                                           
?>
y ahora claro cuando tengo un formulario y pasa algun error y toca volver y reftificar el texto se a borrado ya que no se guarda el cache...

uso el cache para que la gente cuando cambia de usuario o desloguea no pueda ver las secciones privadas para usuarios....


alguna solucion ?
__________________
Zepsilon.com
Diseño e imaginacion
  #2 (permalink)  
Antiguo 26/07/2003, 01:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues si pasa algún error .. vuelve a tu formulario con un link directo (o redireccionamiento) .. pero ahí le tendrás que pasar "todas" las variables que recibistes y validastes con algún error en tu script PHP que procesó esas variables ..

Yo para eso uso sesiones:

procesa_formulario.php
Código PHP:
<?
// valido mis $_POST['variable'] .. (o el metodo que use ..)

// si hay error:
// Me guardo el array POST enterito en una sesión ...
$_SESSION['form_variables']=$_POST;
// y redirecciono a mi formulario ...
// si lo requiero .. le paso a formulario.php?error=blabla alguna variable .. o incluso ese error se lo paso como otra variable de sesión (es lo ideal esto último ..)
header("location: formulario.php");
exit;
?>
Y mi formulario ..

formulario.php
Código PHP:
<?
// incio uso sesiones ...
session_start();
// miro si está definida mi variable de sesión (que es un array)
// y contine mis variables del formulario ...

if (isset($_SESSION['form_variables'])){
// lo asigno a una variable "temporal" ...
$form=$_SESSION['form_variables'];
// me deshago de la variable de sesion .. por si recargo página que me quede límpio el formulario ..
session_unregister('form_variable');
// debería ser unset($_SESSION['form_varibale']); .. pruebalo ..
}
?>

<html>
<form ....>
<!-- Uso el campo value= .. para asignarle el valor de la variable (dentro del elemento del array que guardé) que le corresponde como estado inicial .. -->

<input type="text" name="nombre" value="<?php $form['nombre'?>">
<!-- etc ... -->

</form>
</html>
Eso sería más o menos el código principal .. por supuesto faltan detalles como aplicar stripslashes() si es necesario (para devolver a tu formulario caracteres límpios de caracteres: \ de más .. .. etc..) y de aplicar más isset() antes de mostrar el dato en el formulario ... También es un ejemplo muyy básico .. se complica un poco a la hora de predefinir estados iniciales de "select's" .. "radio" y "checkbox" elementos de formulario.

Esto mismo podrías hacerlo "paseando" tus variables por el URL (propagadas en el header(location ... formulario.php?varible=valor&otra=valor ... etc ..) .. o con Cookies ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 26/07/2003 a las 01:34
  #3 (permalink)  
Antiguo 26/07/2003, 08:17
Avatar de Maycol  
Fecha de Ingreso: diciembre-2001
Ubicación: Ávila (España)
Mensajes: 539
Antigüedad: 16 años
Puntos: 0
cluster gracias por tu idea


lo probare pero el problema esque tengo muchos formularios...
podria crear una clase o algo de estilo...


venga nos vemos!
__________________
Zepsilon.com
Diseño e imaginacion
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:28.