2009-11-10 3 views
0

Я пытаюсь стандартизировать то, как я обрабатываю исключения в своем веб-приложении (домашняя структура), но я не уверен в правильном способе обработки различных ситуаций. Мне интересно, есть ли наилучшая практика из UI/удобной для пользователя точки зрения.Исключения: перенаправление или рендеринг?

  1. Пользователь регистрируется в приложении и открывает две вкладки, показывающие один и тот же экран. На одной вкладке они выдает команду delete на объекте FOO. Затем, на другой вкладке, затем щелкните команду редактирования на FOO (которая больше не существует); например запрос GET для editObject.php?object_id=FOO. Что делать, если они выдают запрос на редактирование этого несуществующего объекта?

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

  2. Пользователь выдает запрос GET для поиска объектов с color=Red, например. searchObjects.php?color=Red. Запрос, возвращающий эти результаты, взорвался, потому что кто-то сбросил таблицу ОБЪЕКТОВ. Это неожиданное исключение и не совсем такое, как 1).

    -Currently Я перенаправление errorPage.php с сообщением «Неожиданная ошибкой»

  3. В общем, что я должен делать, если GET/POST параметров, которые должны быть там вместо таинственно пропали без вести. Может, кто-то пытается что-то привнести?

    -Currently Я подхожу это так же, как 2)


Что я должен делать в каждом из указанных выше 3-й случаев?

  1. визуализации «Объект не существует» вид на URL editObject.php?object_id=FOO
  2. Перенаправить на контроллер, который отображает вид ошибки: header('Location: errorPage.php')
  3. Подавать 404: не уверен, что синтаксис для этого в PHP/Apache
  4. Другое

ответ

0

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

РНР способ служить 404 является

header("HTTP/1.0 404 not found"); 
Смежные вопросы