PHP обнаруживает тип запроса (GET, POST, PUT или DELETE) без использования $ _SERVER ['REQUEST_METHOD']

0

Как я могу найти тип запроса сервера (GET, POST, PUT or DELETE) без использования $_SERVER['REQUEST_METHOD'] странице действия?

Я отправляю страницу из abc.php действия страницы abc.php страница действий.

Мне нужно напечатать используемый метод

  • 2
    используйте $_SERVER['REQUEST_METHO' . 'D'] , нет, но серьезно вы можете объяснить, почему вы не можете использовать этот глобальный?
  • 0
    Почему бы не использовать сервер var?
Показать ещё 2 комментария
Теги:

2 ответа

2
Лучший ответ

Регулярные утверждения

if(!empty($_GET)) { 
    $request = (!empty($_POST)) ? 'both get and post' : 'get';
} else if(!empty($_POST)) {
    $request = 'post';        
}
//... You get the picture

Изменить: я добавил тройку в пределах проверки, чтобы решить проблему, которую Gumbo отметил в комментариях. Вы можете иметь как GET, так и POST файлы, так как вы можете отправлять данные POST в URL с параметрами get, т.е. /Forms/addFileToCompany/? CompanyId = 23

И теперь, потому что я полная грязь, самая ужасная троица, которую вы когда-либо видели! Обратите внимание, что это просто забавно, и я действительно не рекомендую его использовать.

$request = (!empty($_GET)) 
    ? (!empty($_POST)) 
        ? 'both post and get' 
        : 'get'
    : (!empty($_POST))
        ? 'post'
        : (/* Keep it going for whatever */ );
  • 0
    Что делать, если есть параметры URL и POST?
  • 0
    @ Гамбо туш. Я обновил предложение get заявлением, проверяющим сообщение, чтобы предложить третье решение «обоих».
1

Там сложный способ и не такой умный способ, я верю. Проверить это вручную, например:

if( isset($_GET) ) $request_type = 'GET Method'; 
elseif( isset($_POST) ) $request_type = 'POST Method';
  • 0
    $_GET и $_POST всегда установлены.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню