Ответ 1
Используйте $_SERVER['REQUEST_METHOD']
, чтобы определить, была ли доступна ваша страница через запрос GET или POST.
Если к нему был доступен доступ через пост, проверьте, не обрабатываются ли какие-либо переменные в $_POST
.
Я хотел бы иметь страницу в php, которая обычно отображает информацию, основанную на запросе GET, отправленном на него. Тем не менее, я хотел бы, чтобы он также мог обрабатывать определенные POST-запросы. Итак, как я могу определить, были ли какие-либо данные отправлены POST, чтобы я мог действовать на него?
Используйте $_SERVER['REQUEST_METHOD']
, чтобы определить, была ли доступна ваша страница через запрос GET или POST.
Если к нему был доступен доступ через пост, проверьте, не обрабатываются ли какие-либо переменные в $_POST
.
Если вы хотите передать одни и те же переменные как 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
}
Проверьте $_SERVER['REQUEST_METHOD']
. Документация здесь.
Для таких вопросов, как правило, о переменных среды, вот как я их определяю:
Это намного проще, чем пытаться найти ответ в болоте php.net doc.
Я использую переменную $_REQUEST, если у вас есть страница и
он должен также иметь возможность обрабатывать некоторые POST-запросы
http://is.php.net/manual/en/reserved.variables.request.php
Из руководства:
Ассоциативный массив, который по умолчанию содержит содержимое $_GET, $_POST и $_COOKIE.
!empty($_POST)
Я уверен, что вы можете получить доступ к странице через GET и POST, так что это был бы самый безопасный способ IMO