GET или POST для записи, которая будет обновлена

В базовом веб-приложении PHP на основе CRUD требуется функциональность для обновления данных записей в базе данных на сервере. Страница обновления может быть вызвана из списка записей, и идентификатор записи, подлежащей изменению, должен быть передан на эту страницу.

В этой ситуации какой из GET или POST будет считаться лучшей практикой? GET, очевидно, позволит пользователю изменить значение намного проще, чем POST, поэтому подходящие проверки на наличие и владение записью будут важны. С другой стороны, POST может перепутать пользователей при обновлении или навигации с кнопками «назад» / «вперед», запрашивающими подтверждение повторной отправки, когда они не знали о представляемых данных.

0

Решение

В этой ситуации какой из GET или POST будет считаться лучшей практикой?

СООБЩЕНИЕ. Вы отправляете данные для обновления контента на сервере. Вот для чего POST.

GET, очевидно, позволит пользователю изменить значение намного проще, чем POST

В этом разница между «тривиальным» и «очень тривиальным». Не позволяйте ничему, касающемуся способности пользователя изменять запрос, повлиять на ваше решение выбрать метод запроса.

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

Чтобы избежать этого, используйте Шаблон POST / Redirect / GET.

Используйте запрос POST для обработки обновления. Отправьте редирект в браузер. Тогда браузер ПОЛУЧИТ страницу с обновленными данными.

когда они не знали о каких-либо данных, представляемых.

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

1

Другие решения

Если вы не хотите, чтобы случайные люди меняли случайные значения (меняя значение в URL), вы должны использовать post. Насколько я мог бы это сделать, я бы использовал POST для всех транзакций базы данных (обновление, удаление), поскольку это более безопасно.
Большинство браузеров предупреждают о завершении публикации (= повторная отправка формы / …).

1

  • Вы должны использовать $ _GET, когда кто-то запрашивает данные у вашего
    приложение.
  • И вы должны использовать $ _POST, когда кто-то нажимает (вставка или
    обновление; или удаление) данных в вашем приложении.

Вы можете использовать $ _REQUEST, так как он содержит информацию о get и post как с $ _COOKIES.

Но если вы не используете куки, поэтому я рекомендую вам использовать $ _POST, а не $ _COOKIES.

0

Я обычно использую GET для отчетов и POST для обновлений.

Используйте GET, если вы хотите, чтобы пользователи могли быстро получить доступ к некоторому контенту, и имейте в виду, что пользователь может изменить параметры вручную.

Используйте POST, если вы не хотите, чтобы пользователи видели или изменяли параметры, и предупреждайте пользователя в новой форме.

Вы можете использовать POST с результатом перенаправления, это определенно предотвратит повторные передачи.

0
По вопросам рекламы [email protected]