Pregunta

Mi problema es que el botón de retroceso hace que el navegador que decir algo como "página caducada" cuando la página anterior fue creado por un formulario.

Ejemplo:

  • page1: formulario enviado con la búsqueda Características ($ _POST solicitud, la forma puntos a page2)
  • página 2: Recibe $ _POST y solicitud mostrar resultado (lista de usuarios con los enlaces, puntos a page3)
  • page3: Mostrar perfil de usuario

Ahora, cuando el usuario hace clic en el botón Atrás en el navegador mostrará algo así como "Página expiró".

En lugar de la página anterior se debe mostrar sin advertencias (página 2, con la lista de usuarios)

¿Cómo son sus estrategias para conseguir este comportamiento?

¿Fue útil?

Solución

Si usted está presentando una para con los parámetros de búsqueda, que está tratando de obtener algunos datos, no modificar algunos.

Por lo tanto, se debe utilizar el método HTTP GET y no POST:. Puesto debe ser utilizada cuando se tiene la intención de crear / modificar datos y GET se debe utilizar cuando se tiene la intención de buscar un poco de datos


O, si usted tiene algunos crean / operación que se tiene que hacer modificar:

  • El formulario primeros puestos de la primera página
    • Esa página hace algunas operaciones (como escribir algo a una base de datos)
    • Y a continuación, vuelve a dirigir a otra página, usando un Location cabecera HTTP.
  • Es esa última página, que está consultas por el navegador usando un peticiones GET, que muestra los datos obtenidos a partir de los parámetros recibidos en la URL.

Mensaje / Redirigir / Obtener página en Wikipedia, acerca de esto.

Otros consejos

Enviar una cabecera Location en el guión que ha publicado en, apuntando a la página que viene después.

No utilice la POST para la búsqueda. Buscar con seguridad se puede hacer con GET, ya que no alterará nada.

Esto se aplica a PHP y IE8.

No sólo hay que cacheing conjunto a lo privado, pero debe quitar las 4 cabeceras de cache y esto sólo se puede hacer con PHP 5.3. En PHP 5.2 sólo puede establecer las 4 cabeceras de los valores en blanco si se utiliza el método del Zend Framework setHeader (). Por alguna razón no es suficiente en IE8 para establecer los valores de cabecera a 4 valores vacíos. Aquí está el código para PHP 5.3:

    header_remove("Expires");
    header_remove("Cache-Control");
    header_remove("Pragma");
    header_remove("Last-Modified");

Puede utilizar la sesión para realizar esta acción.

por ejemplo.

$ _ SESSION [ 'nombre'] = $ _POST [ 'nombre'];

Recuerde que ha decidido eliminar las variables después de que el proceso se completa a optimizar el uso de memoria.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top