PHP - Volver hacia atras

 
Vista:

Volver hacia atras

Publicado por SA (8 intervenciones) el 27/12/2007 23:30:02
Tengo una pagina1.php con un formulario para el registro de datos. La idea es que esta página se pueda a llamar a si misma y guardar el registro en la base de datos mostrando luego una ventana emergente que diga “Registro guardado” y luego vuelva a recargar la pagina1.php lista para agregar otro registro. Esto lo he podido hacer, pero el problema es que al pulsar el botón atrás del navegador me vuelve a mostrar la pantalla con los datos del último registro cargado. Y si avanzo otra vez con el botón hacia delante me vuelve a mostrar el mensaje de confirmación. La pregunta: ¿Cómo evitar el usuario al pulsar el botón hacia atrás no regrese a la pantalla donde están los datos del ultimo regisro? ¿Alguién sabe como hacerlo? ¿Es posible? He leído algunas respuestas en algunos foros pero todavía no estoy muy claro si se puede o no. Gracias a todos los que puedan darme alguna respuesta.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Volver hacia atras

Publicado por Diego Romero (1450 intervenciones) el 28/12/2007 10:27:44
No es posible modificar el comportamiento normal de un navegador (salvo que te aproveches de un fallo, lo cual no asegura nada).

Lo que sí puedes hacer es obligar al navegador a recargar la página invalidando la caché del navegador mediante las directivas <meta>. El inconveniente aquí es que no todos los navegadores responden igual a esas directivas.

<meta http-equiv="Expires" content="-1">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">

Estas tres directivas <meta> las uso en un caso parecido al tuyo, la primera dice que si la página está en el caché la use solo si se ha almacenado en los últimos -1 segundo que como es negativo produce que nunca se cargue de la caché (el IE no reconoce esta directiva). El segundo hace no guarde en caché la página lo que provoca que siempre recargue la página desde el servidor (Opera y FF no reconocen esta directiva). La tercera hace lo mismo que las dos anteriores juntas, es decir, no guarda la página en caché y siempre recarga la página desde el servidor pero no estoy seguro en qué navegadores funciona y cuales no.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Volver hacia atras

Publicado por SA (8 intervenciones) el 28/12/2007 22:49:07
Bueno, probé esa opción pero no pude ver ningún efecto. Coloque el código en la cabecera (<head> </head>) de Pagina_1.php. Estoy trabajando con Internet Explorer 6.0 y el servidor local Internet Information Server (IIS). Cuando pulso el botón atrás me vuelve a mostrar Pagina_1.php con los últimos datos cargados en el formulario. No se si hay algo adicional que deba configurar para hacer que funcione.

Gracias, Diego. De todas maneras lo he resuelto de la siguiente manera: Pagina_1.php es una página de registro que contiene un formulario para ingresar los datos. Esta página es llamada desde una página_0.php que contiene el menú principal. Ahora bien, para abrir Pagina_1.php lo hago utilizando javascript. Esta es la sentencia: window.open(“pagina_1.php”,"","scrollbars=yes,menubars=NO,statusbar=NO,status=NO,resizable=YES,location=NO"). De esta manera abro Pagina_1.php en una nueva ventana del navegador sin la barra de herramientas, y por tanto, el usuario no puede hacer uso de los botones de navegación. Cuando el usuario pulsa el botón “Guardar”, el registro es procesado en Pagina_2.php. Si el registro se guarda correctamente, entonces se muestra un mensaje al usuario indicándole que su registro ha sido guardado. También le presento un botón para cerrar la ventana emergente y regresar al menú principal (Pagina_0.php). Si el registro no se guarda, entonces Pagina_2.php muestra un mensaje indicándole el problema y también le presenta un botón que le permite regresar a Pagina_1.php para ver los datos del último registro. Esto último lo hago con javascript (onClick=”javascript:window.history.back();”).

Creo que esta es una buena opción para quienes tienen un problema similar. Si hay otra opción me gustaría saberlo.

Gracias a todos los lectores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Volver hacia atras

Publicado por Diego Romero (1450 intervenciones) el 29/12/2007 17:55:28
Comprendo.
Aunque lamentablemente esa instrucción en JavaScript no funciona como deseas en FF y Opera. En Opera por ejemplo si bien dimensiona la ventana y le quita las barras el usuario siempre puede volver a mostrar las barras manualmente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar