2009-09-28 18 views
7

Cuando hago clic en cualquier navegador, pierdo todos los datos que se ingresaron en el formulario en ambos tipos de bajadas y entrada de texto.Perder datos de formulario al hacer clic en el botón Atrás en el navegador

¿Es esto un servidor, un navegador o un problema de codificación?

Gracias

+0

en ASP.NET se recuperarán los datos, por lo que supongo que no está utilizando ASP.NET? – Natrium

+0

Sin utilizar PHP y MySQL –

+0

Esto también ocurre con el navegador de Windows Phone. Tratando de encontrar una solución. –

Respuesta

9

Es un problema del navegador. El navegador se comporta de manera diferente cuando se hace clic en el botón Atrás: este comportamiento depende principalmente de la configuración de privacidad del usuario. Además, la mayoría de los navegadores restablecerán automáticamente el formulario al presionar el botón Atrás para las páginas vistas a través de una conexión HTTPS, independientemente de su comportamiento normal para las conexiones HTTP. Además, muchos formularios HTML que dependen en gran medida de AJAX no restauran su estado anterior de forma adecuada o consistente.

Editar ----

ahora que lo menciona el uso de PHP y MySQL, suponiendo que también está usando sesiones ... el navegador no va a rellenar previamente el formulario cuando se pulsa el botón de retroceso. Las páginas con PHP no se almacenan en caché en los navegadores y presionar el botón Atrás para volver a la página anterior es como volver a abrir esa página desde el principio: la mayoría de los navegadores no se molestarán en restaurar los valores del formulario.

+0

Descubrí que Safari conserva los datos pero IE y FF no los conservan. –

+0

Estamos usando sesiones correctas, por lo que no hay forma de evitar este problema realmente hasta que el navegador deje de permitir al usuario hacer clic atrás. –

+0

¿Es posible utilizar las sesiones para nuestro beneficio? –

1

Se necesitan crear sticky forms para el navegador para mantener los datos del formulario cuando se presiona hacia atrás. Es bastante fácil de hacer, echa un vistazo a los tutoriales en la búsqueda vinculada.

2

Esto se aplica a PHP e IE8.

No solo debe configurar la caché en privado, sino que debe eliminar los 4 encabezados de caché y esto solo se puede hacer con PHP 5.3.

En PHP 5.2, solo puede establecer los 4 encabezados en valores en blanco si usa el método Zend Framework setHeader(). Por alguna razón, no es suficiente en IE8 para establecer los 4 valores de encabezado en 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"); 
Cuestiones relacionadas