Подтвердить что ты не робот

Как я могу указать php-страницу, если кто-то пришел через POST или GET?

Я хотел бы иметь страницу в php, которая обычно отображает информацию, основанную на запросе GET, отправленном на него. Тем не менее, я хотел бы, чтобы он также мог обрабатывать определенные POST-запросы. Итак, как я могу определить, были ли какие-либо данные отправлены POST, чтобы я мог действовать на него?

4b9b3361

Ответ 1

Используйте $_SERVER['REQUEST_METHOD'], чтобы определить, была ли доступна ваша страница через запрос GET или POST.

Если к нему был доступен доступ через пост, проверьте, не обрабатываются ли какие-либо переменные в $_POST.

Ответ 2

Если вы хотите передать одни и те же переменные как POST, так и GET, вы всегда можете использовать REQUEST, который содержит параметры как из POST, так и GET. Однако это обычно рассматривается как уязвимость безопасности, так как это означает, что переменные могут быть более легко подделаны.

Если вы хотите проверить, был ли отправлен запрос POST или GET, вы можете:

if($_SERVER['REQUEST_METHOD'] === 'post')
{
    // Do one thing
}
elseif($_SERVER['REQUEST_METHOD'] === 'get')
{
    // Do another thing
}

Или:

 if(!empty($_POST))
 {
     // Process POST
 }
 elseif(!empty($_GET))
 {
     // Process GET
 }

Ответ 3

Проверьте $_SERVER['REQUEST_METHOD']. Документация здесь.

Ответ 4

Для таких вопросов, как правило, о переменных среды, вот как я их определяю:

  • Создайте foo.php, который просто вызывает phpinfo();
  • GET foo.php
  • POST для foo.php
  • Сравните вывод phpinfo(); и сделайте мои теории о том, что такое поведение.
  • Подтвердите мою теорию против документов на php.net

Это намного проще, чем пытаться найти ответ в болоте php.net doc.

Ответ 5

Я использую переменную $_REQUEST, если у вас есть страница и

он должен также иметь возможность обрабатывать некоторые POST-запросы

http://is.php.net/manual/en/reserved.variables.request.php

Из руководства:

Ассоциативный массив, который по умолчанию содержит содержимое $_GET, $_POST и $_COOKIE.

Ответ 6

!empty($_POST)

Я уверен, что вы можете получить доступ к странице через GET и POST, так что это был бы самый безопасный способ IMO