Foros del Web » Programando para Internet » PHP »

Sesiones y formularios por POST

Estas en el tema de Sesiones y formularios por POST en el foro de PHP en Foros del Web. ¿Cuando se trabaja con sesiones y formularios, si presionas el botón Atrás en el Navegador, salta el mensaje de Advertencia para actualizar pagina, como puedo ...
  #1 (permalink)  
Antiguo 24/03/2005, 09:00
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
Sesiones y formularios por POST

¿Cuando se trabaja con sesiones y formularios, si presionas el botón Atrás en el Navegador, salta el mensaje de Advertencia para actualizar pagina, como puedo evitar que salga?
Se supone que con la directiva session.cache(public) se elimina, pero entonces no se me guardan los datos en la cache y no se me actualiza la pagina.
Agradecería una posible solución

Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 24/03/2005, 10:09
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
usar header("location:pagina") es lo único que se me ocurre... Obviamente eso te elimina las variables $_POST
  #3 (permalink)  
Antiguo 24/03/2005, 10:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
pero entonces no se me guardan los datos en la cache y no se me actualiza la pagina.
que significa eso (ejemplo .. que sucede fisicamente..)

-------

El problema es que no se debe trabajar con el "botón atras" .. ni para restaurar los datos que contenta el formulario .. ni para navegar por tu aplicación.

Debes tomar todas tus variables en el script de proceso y pasarselas al formulario para pre-establecer los valores de los datos que se enviaron .. Todo bajo una sesión o por el URL ..

El procedimiento sería tipo

formulario.??? --> script de proceso.php -> si hay error .. redireccionar al formulario.

El script de proceso (aunque lo tengas todo en uno) debe al terminar el proceso redireccionar. Si muestras ahí un mensaje de error/exito .. al intentar enviar denuevo el formulario por ir "hacia" atras .. ocasionará el problema que indicas ..

Código PHP:
<?
// proceso PHP
// tomas tus variables $_POST para propagarlas al formulario.php .. ya sea en una sesión o por el URL todas o en cookies .. Al redireccionar vas a perder tus variables por eso es necesario pasarselas.
header ("Location: formulario.php");
exit;
?>
Los mensajes de error/exito que tengas que mostrar .. hazlo en el formulario NUNCA en el mismo flujo del proceso .. en sí...

No sé si usas un mismo script para todo (el formulario y su proceso por ejemplo) o usas scripts por separado, la diferencia es sólo tener alguna variable de control que indentifique que está haciendo tu script (por ejemplo bajo la existencia de una de tus variables del formulario .. sabras si corresponde procesar o bien mostrar tu formulario).

Un saludo,

Última edición por Cluster; 24/03/2005 a las 10:20
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 14:58.