Проверьте, является ли запрос GET или POST

279

Возможный дубликат:
PHP-запрос типа запроса (GET, POST, PUT или DELETE)

Это должно быть легко.

У меня есть script, а в script я хочу определить, поступает ли запрос через метод GET или POST.

Каков правильный способ сделать это?

Я думаю использовать что-то вроде этого

if (isset($_POST)) {
    // do post
} else  {
    // do get
}

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

  • 1
    Почему вы не можете попробовать $ _REQUEST ["variable_name"], если вы нацеливаетесь на переменные обработки независимо от типа запроса?
  • 3
    @ AnoopPete - потому что это не то, что просили. $ _REQUEST будет принимать GET, POST, PUT, DELETE (что угодно). Это не только ужасная практика, она может привести к угрозам безопасности. Представьте, что ваша логика просто ожидает метод POST формы, но вы разрешаете принимать любые / все методы. Это может иметь ужасные последствия в чужих руках.
Показать ещё 1 комментарий
Теги:

2 ответа

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

Лучше использовать $_SERVER['REQUEST_METHOD']:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // …
}
  • 0
    @ Гамбо нам нужно === , что произойдет, если я использовал ==
  • 3
    Вы можете использовать === или == . Первый - это просто хорошая практика, так как он проверяет, являются ли переменные «идентичными». (Например: 5 == '5' - true , а 5 === '5' - false )
Показать ещё 3 комментария
59

Используйте $_SERVER['REQUEST_METHOD'].

Ещё вопросы

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