2013-10-13 2 views
0

В настоящее время я пишу приложение, которое будет проверять данные формы от администратора.Проверка формы CRUD в PHP

Насколько я могу видеть, у меня есть два параметра, чтобы сделать это:

GET и POST запросы на тот же URL

GET /admin/category/new представить HTML форму, чтобы создать новую категорию

POST /admin/category/new, который POSTs здесь, если он действителен, он просто перезагружает HTML-форму по адресу с предоставленными данными и соответствующими ошибками, пока не пройдет проверку. Однако, если пользователь обновляется, браузер запрашивает повторную отправку данных.

GET и POST для различных RESTful URL-

GET /admin/category/new представить HTML форму, чтобы создать новую категорию

POST /admin/category, который бы мог ручки PUT, DELETE запросы, а также. Если проверка завершается с ошибкой и пользователь перенаправляется обратно на GET /admin/category/new, это нормально, чтобы сохранить как ошибку, так и предыдущий ввод во время сеансовой синхронизации? Что произойдет, если пользователь отправит несколько изменений в несколько окон браузера. Как вы гарантируете, что предыдущий ввод привязан к правильной форме.

Основная причина, по которой я спрашиваю, когда я обновляю несколько элементов в очереди нескольких флеш-сообщений Magento или WordPress в одном окне, которые относятся к другим обновлениям Windows. Итак, какой вариант лучше? или проще всего поддерживать?

+0

Возможный дубликат [Обновить окно браузера после POST без запроса повторного отправки данных POST] (http://stackoverflow.com/questions/4869721/reload-browser-window-after-post-without-prompting-user-to -resend-post-data) – Gajus

ответ

0

Я предлагаю использовать шаблон дизайна POST-redirect-GET.

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

Лично я считаю, что это приводит к более чистому коду и его легче поддерживать.

+0

ОК, но где перенести данные, которые не прошли проверку, чтобы повторно заполнить форму? Является ли использование сеанса достаточным или может несколько запросов вывести данные из запроса n загрузки в запрос n + 1, например? – user2856585

+0

Я предпочитаю только перенаправление после успешной обработки формы. Нет необходимости в сеансе. Таким образом, я могу легко пополнить форму с помощью опубликованных несохраненных данных. –

+0

Ах, поэтому вы используете первый вариант и 'POST' для того же URL-адреса, а не второй шаблон, который отражает маршрутизацию Ruby on Rails. – user2856585

Смежные вопросы