Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/06/2005, 14:36
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 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,