Потеря данных формы при нажатии кнопки "Назад" в браузере [дубликат]
этот вопрос уже есть ответ здесь:
когда я нажимаю на любой браузер, я теряю все данные, которые были введены в форме как на выпадающих, так и на типах ввода текста.
это сервер , браузер или проблема с кодированием ?
спасибо
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. Его довольно легко сделать, ознакомьтесь с учебниками в связанном поиске.