Я пишу скрипт аутентификации на PHP, который будет вызываться как API, который должен возвращать 200 only in the case that it approves the request, and
403 (Forbidden) or
500` в противном случае.
Проблема, с которой я столкнулсяэтот php возвращает 200
в случае возникновения ошибок, выводя ошибку вместо html.Как я могу быть абсолютно уверен, что php вернет код HTTP 500
, если я сам не верну HTTP 200
или HTTP 403
?Другими словами, я хочу превратить все без исключения условия предупреждения или ошибки в 500
с, без исключений, чтобы случай по умолчанию отклонял запрос аутентификации, а исключение утверждало его с кодом 200
.
Я возился с set_error_handler()
и error_reporting()
, но пока не повезло.Например, если код выводит что-то до того, как я отправлю код ответа HTTP, PHP, естественно, сообщает, что вы не можете изменить информацию заголовка после вывода чего-либо.Тем не менее, PHP сообщает об этом как код ответа 200
с html, объясняющим проблему.Мне нужно, чтобы даже такие вещи были превращены в 500
код.
Возможно ли это в PHP?Или мне нужно сделать это на более высоком уровне, как, например, использовать mod_rewrite
?Если это так, есть идеи, как мне это настроить?