Потеря данных формы при нажатии кнопки "Назад" в браузере [дубликат]

этот вопрос уже есть ответ здесь:

когда я нажимаю на любой браузер, я теряю все данные, которые были введены в форме как на выпадающих, так и на типах ввода текста.

это сервер , браузер или проблема с кодированием ?

спасибо

3 ответов


Это проблема браузера. Браузер ведет себя по-разному при нажатии кнопки "назад" - это поведение в основном зависит от настроек конфиденциальности пользователя. Кроме того, большинство браузеров автоматически сбрасывают форму при нажатии кнопки "Назад" для страниц, просматриваемых через HTTPS-соединение, независимо от их нормального поведения для HTTP-соединений. Кроме того, многие HTML-формы, которые сильно зависят от AJAX, неправильно или последовательно восстанавливают свое предыдущее состояние.

правка ----

теперь вы упоминаете использование PHP и MySQL, предполагая, что вы также используете сеансы... браузер не будет предварительно заполнять форму при нажатии кнопки "Назад". PHP-session powered pages не кэшируются в браузерах, и нажатие кнопки "назад", чтобы вернуться к предыдущей странице, похоже на открытие этой страницы снова с самого начала-большинство браузеров не будут беспокоиться о восстановлении значений формы.


это относится к PHP и IE8.

вы не только должны установить cacheing в private, но вы должны удалить 4 заголовка cacheing, и это можно сделать только с PHP 5.3.

в PHP 5.2 вы можете установить только 4 заголовка в пустые значения, если используете setHeader () метод. По какой-то причине на IE8 недостаточно установить 4 значения заголовка в пустые значения. Вот код для PHP 5.3:

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

вам нужно создать липкие формы для браузера, чтобы сохранить данные формы при нажатии кнопки Back. Его довольно легко сделать, ознакомьтесь с учебниками в связанном поиске.