Foros del Web » Programando para Internet » PHP »

session_cache_limiter

Estas en el tema de session_cache_limiter en el foro de PHP en Foros del Web. Hola a todos, tengo varias paginas con form donde uso el session_cache_limiter('public') para q cuando pase a la siguiente pag con form y quiera hacer ...
  #1 (permalink)  
Antiguo 08/06/2005, 03:07
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 323
Antigüedad: 19 años
Puntos: 0
Busqueda session_cache_limiter

Hola a todos,
tengo varias paginas con form donde uso el session_cache_limiter('public') para q cuando pase a la siguiente pag con form y quiera hacer un ATRAS con el navegador(pq me olvide de escribir algo) no me borre los datos del form, hasta allí todo bien, pero cuando hago una actualización de los datos en un form, estos aparentemente no se actualizan, pero si lo hace, pues mire la BD y si, lo q pasa es q guarda los datos en session_cache_limiter, y quitandole esto si funciona, pero cuando hago un atras con el navegador me sale No se puede mostrar la pagína.

Que puedo hacer?

Espero q haya quedado claro, gracias por su ayuda.
  #2 (permalink)  
Antiguo 08/06/2005, 16:08
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 323
Antigüedad: 19 años
Puntos: 0
vaya, no pense que les gustara tanto este tema jejeje
  #3 (permalink)  
Antiguo 09/06/2005, 14:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lo más lógico es que no tengas que "usar" el botón "hacia atras" de tu navegador para volver a tu formulario sino que sea tu aplicación la que lo dirija a el si hay problemas (validaciones que no pasan .. etc ...)

Con session_cache_limiter() gestiónas sólo como tu navegador va a tratar los datos que envias si los va a "cachear" o no .. de hecho con "public" ya has observado que quedan en tu navegador .. por eso al volver hacia atras con el botón correspondiente o con javascript (history.nosecuantos()) .. ves los datos que tenía. Pero si no defines nada (no usas dicha función) se asume lo que PHP por defecto usa en su configuración al usar sesiones que es "private" (si mal no recuerdo) .. Todo esto son cabeceras HTTP de gestión del caché (por si quieres ver algún manual al respecto o RFC's correspondientes que definen dicho protocoolo).

Para solventar el problema .. lo que debería hacer tu aplicación es un procedimiento tipo:

formulario.php (recoge datos de tu usuario por su navegador ..)
proceso.php (procesa los datos que envias desde formulario.php)
- Si todo Ok .. redireccionas hacia el destino definitivo ..
- SI hay error .. tomas las variables que tienes en $_POST (o $_GET) que son las que te han llegado del formulario.php y las propagas nuevamente a dicho formulario.php .. ya sea por el URL o mejor por una sesión (www.php.net/session) para que en formulario.php puedas tomarlas como referencia para poblar tus "input" vía sus "value" o equivalentes y así pre-establecer su valor iniciar. De esta forma es tu "aplicación" la que guía al usuario .. en ningún momento se deja al usuarios al libre albedrio para que tenga que pulsar dicho botón del navegador .. pues tu aplicación ya sigue la "lógica" del mismo. Si estás pensando algo tipo "ya, OK, pero donde pongo el cartelito de hay un error .. volver al fomulario .." .. bueno, lo pones en tu formulario.php .. mensaje que muestras en función si esas variables que propagas desde tu proceso.php a este están definidas o no, es decir; de esta forma sabes que llegas a formulario.php por un error y no directamente o por el proceso lógico del resto de la aplicación.

Un saludo,
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:15.