何时使用 REQUEST_METHOD

当我们需要确定 HTTP 请求类型时,可以使用 REQUEST_METHOD 变量。

例如,如果我们知道应用程序仅通过 HTTP post 请求接受用户输入,则建议阻止其他类型的请求,并通知用户该请求无效。

在尝试验证输入本身之前,它可以用作用户输入的服务器端验证的一部分。

REQUEST_METHOD 变量由 PHP 根据 HTTP 请求类型填写,因此无需验证即可安全使用。
在这个变量中应该没有注入攻击的风险。

我们不能简单地检查 $_POST 和 $_GET 是否为空,因为它们总是被定义的,即使所有的 HTML 表单字段都是空的。

PHP 中的 REQUEST_METHOD 超全局变量

要检查请求方法,我们可以使用 $_SERVER['REQUEST_METHOD'] 变量,$_SERVER 是一个 PHP 超全局变量,我们可以随时使用它,甚至在函数和类中也是如此。

要使用 REQUEST_METHOD 变量,我们可以只回显其内容,但它可能在 switch 或者 if 语句中更有用。

请求类型:

  • GET
  • POST
  • HEAD
  • PUT
  • DELETE
  • PATCH

例子:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  echo 'The request was POST';
  exit();
} else {
  http_response_code(405);
  header('Allow: GET, HEAD');
  echo '<h1>405 Method Not Allowed</h1>';
  exit();
}
日期:2020-06-02 22:17:31 来源:oir作者:oir