ПОЛУЧИТЬ POST-данные для Mozilla - PullRequest
0 голосов
/ 17 февраля 2011

Я делаю свою работу на PHP.У меня есть 3 страницы, A является простым HTML и содержит поле поиска.B .php и возвращает результаты поиска.C также php и позволяет пользователю обновлять некоторые детали для отображаемых результатов.

Когда я делаю Обновить мою страницу B или Вернуться с C на затем, я получаю это сообщение

"Чтобы отобразить эту страницу, Firefox должен отправить информацию, которая повторяет любыедействие (например, поиск или подтверждение заказа), которое было выполнено ранее. "

Я видел" Когда я использую метод " POST ", тогда я получаю это сообщение, еслиЯ использовал GET, а затем нет.

Любой приятель Объясните мне, почему ???

Ответы [ 6 ]

3 голосов
/ 17 февраля 2011

Метод GET должен использоваться для получения информации с веб-страницы.

Метод POST должен использоваться для отправки информации на веб-страницу.

Причина, по которой он просит вас подтвердитьили нет, отправлять информацию снова, потому что не всегда пользователь намерен опубликовать форму, если он нажмет обратно.Например, в интернет-магазине вы не захотите перепечатывать форму, чтобы купить продукт дважды, в противном случае вам может быть выставлен счет за продукт дважды.Конечно, это теоретически, поскольку тот, кто делает онлайн-магазин, должен гарантировать, что случайная покупка не может произойти.

Кроме того, если вы используете GET, тогда вся информация добавляется в URL-адрес страницы PHP.Это потенциальная проблема безопасности, особенно если содержимое формы является закрытым.Для таких форм вы должны использовать POST.

2 голосов
/ 17 февраля 2011

Дикая догадка, POST не записывается в URL, поэтому вам нужно повторно отправить его, а когда GET, когда вы нажимаете, чтобы вернуться к B, аргументы все еще находятся в URL, поэтому вам не нужно повторно отправлять.

Mozilla добавила это сообщение, чтобы предупредить вас об отправке информации дважды.Как и в форме регистрации, вы не хотите регистрироваться дважды.

1 голос
/ 17 февраля 2011

Разработчики Firefox добавили это предупреждение для метода POST. Он также предупредит вас о POST в случае перехода назад / вперед.

Это дополнительная защита для пользователей. Потому что большинство корзин покупок / банковских порталов используют метод POST для проверки / подтверждения транзакции (на самом деле я не видел и не разрабатывал веб-приложения для использования метода get для этой цели).

Итак, Firefox (и большинство других распространенных браузеров) предупреждает вас в этом сценарии (когда вы отправляете POST-запрос косвенно, т.е. с помощью кнопки назад / вперед / обновления). Это предотвращает многократный заказ пользователем.

Еще одна причина добавить это предупреждение, иногда chekout занимает много времени. Таким образом, когда проходит некоторое время после первоначальной отправки, некоторые нетерпеливые пользователи думают, что браузер / сервер перестал работать. Таким образом, они имеют тенденцию нажимать кнопку обновления. Это предупреждение дает им хороший совет.

0 голосов
/ 19 февраля 2011

Firefox обычно должен позволять вам вернуться обратно на свою страницу B со своей страницы C.Однако, если ваша страница B не находится в кэше, возможно, потому что она отправляет заголовок Cache-control: no-store, вы получите предупреждение POSTDATA.

С другой стороны, явная перезагрузка страницы B всегда приведетпредупреждение POSTDATA.

0 голосов
/ 17 февраля 2011

Когда вы отправляете данные методом POST, он отправляет заголовки на страницу, на которую вы отправляете.Когда вы обновляете страницу или возвращаетесь назад, ваш браузер повторяет ваш запрос POST, и Firefox предупреждает вас об этом.

0 голосов
/ 17 февраля 2011

Я думаю, дело в том, что запросы GET должны использоваться для получения информации без каких-либо изменений на сервере, поэтому, если вы перезагрузите ту же информацию, проблем нет.POST-запросы должны использоваться для изменения данных на сервере, поэтому при перезагрузке страницы это может привести к нежелательным последствиям.

...