
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
|||
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Banned Сообщений: 251 Пользователь №: 29784 На форуме: Карма: ![]() |
Привет!
Браузер Firefox 11.0, html-страница содержит форму с полями для ввода фамилии, имя, отчества и так далее. После заполнения формы клиент нажимает на кнопку, данные улетают на сервер, сервер возвращает ту же самую страницу с той же формой. Данные формы всегда обрабатываются по одному и тому же URL, параметр action формы пуст. Вопрос. Как сделать, чтобы 1) при нажатии кнопки "Обновить" в браузере, не появлялось окно с надписью: "Чтобы отобразить эту страницу, Firefox должен отправить информацию, которая повторит любое ранее произведённое действие (например, запрос на поиск или онлайн-покупка)." 2) Если клиент ушёл со страницы с формой по другому URL, а затем нажал кнопку "Назад" в браузере, то появлялась страница с формой, а не надпись "Не удалось загрузить эту страницу.". Спасибо! Спустя 2 минуты, 56 секунд (21.03.2012 - 11:06) Ramzil_Nixon написал(а):
Не совсем понял тебя.. Спустя 4 минуты, 17 секунд (21.03.2012 - 11:11) Visman написал(а): После обработки данных делай переадресацию на себя, примерно так header('Location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); Спустя 7 минут, 56 секунд (21.03.2012 - 11:19) yuriy написал(а): После обработки данных подумывал делать так:
Это если пользователь ввёл всё верно. Если данные $_POST пришли не такие, какие ожидались, то переадресацию делать нельзя - нужно вывести сообщение об ошибке. Вот я поэтому чёт и не врублюсь, как грамотно обработать. Спустя 4 минуты, 42 секунды (21.03.2012 - 11:23) Visman написал(а): 1. Если есть $_POST, то проверяем данные (2), иначе выводи форму без данных. 2. Проверяем данные, если ошибки, то выводим вместо формы текст с описанием ошибки, иначе переадресация на себя для сброса данных. Спустя 6 минут, 17 секунд (21.03.2012 - 11:29) yuriy написал(а): Если точнее, то, если данные не верные, то выводим текст с описанием ошибки и форму с теми данными, которые верные. И при этом никуда не деться от проблем, которые были описаны мною в самом начале поста. Спустя 3 минуты, 51 секунда (21.03.2012 - 11:33) Visman написал(а): Можно попробовать извратиться. Когда выводишь текст ошибки (и форму), то это ответ на запрос пост, отсюда и ошибка. Если делать ту же переадресацию на себя, но передавать данные об ошибке и сами данные через сессию, то сообщение об ошибке и саму форму с данными уже будешь открывать не по запросу пост. Возможно, тогда такое поведение браузера исчезнет. Спустя 4 минуты, 59 секунд (21.03.2012 - 11:38) yuriy написал(а): Ага. Спасибо большое. Я тоже думаю, что в сессию нужно пихнуть сиё дело, но решил спросить у форума, может ещё есть какие методы. -------------------- void x;
|
||
![]() |
![]() ![]() ![]() |