Как распечатать ошибку 405 Метод не разрешен пользователям

Я работаю над скриптом поиска UDID для iOS и, к сожалению, столкнулся с небольшой проблемой. Как вы, возможно, знаете, чтобы получить UDID iOS, пользователи должны установить профиль на устройстве iOS. После этого устройство отвечает на ссылку, указанную в профиле. Если пользователь откроет ссылку для поиска напрямую, он получит сообщение об ошибке 405. Метод не разрешен. такие же, как следующие ссылки: http://get.udid.io/retrieve/ и http://license.if0rce.com/connect/retrieve

Код в /retrieve/index.php:

<?php
$data = file_get_contents('php://input');
file_put_contents("data.txt", $data);
?>

Я могу установить пользовательскую ошибку, добавив:

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    header("HTTP/1.0 405 Method Not Allowed");
exit(); }

Но это не профессиональный путь. Я хотел бы, чтобы пользователь получил ошибку, точно такую ​​​​же, как упомянутые ссылки.

Есть идеи?

Ценю твою помощь :)


person PersianHero    schedule 17.05.2014    source источник
comment
Вы, должно быть, шутите, помечая это information-retrieval … (удалено)   -  person CBroe    schedule 18.05.2014
comment
Обратите внимание, что согласно RFC 2616 ответ 405 ДОЛЖЕН включать заголовок Allow, содержащий список допустимых методов для запрошенного ресурса.   -  person lafor    schedule 18.05.2014


Ответы (1)


Apache не настроен для действий с документами об ошибках для кодов состояния PHP. В «custom-msg.php» вы можете добавить сообщение, которое хотите показать.

if ($_SERVER['REQUEST_METHOD'] == 'GET') {
header("HTTP/1.0 405 Method Not Allowed"); 
include 'custom-msg.php';
exit(); }
person FDGod    schedule 17.05.2014
comment
Спасибо. Они выполняли ту же работу? - person PersianHero; 18.05.2014
comment
Вы также должны включить заголовок Allow с ответом 405 (раздел 14.7): w3. org/Протоколы/rfc2616/rfc2616-sec14.html - person tvanc; 16.06.2016
comment
Почему бы просто не использовать http_response_code(405) вместо header("HTTP/1.0 405 Method Not Allowed")? - person Jenna Sloan; 15.09.2019