禁用某些页面 php 的 HTTP GET


Disable HTTP GET for some pages php

我想在我的网站中为我的一些php页面禁用HTTP GET方法。我可以在 php 代码中做到这一点吗?

假设我有两个页面.html动作.php。现在.html是正常的页面,可以用任何方法访问,并将信息提交给行动.php。但我希望提交到行动的信息.php只能通过发布方法提交。

发送一个不允许的方法标题以及一些解释性文本(最好是比我下面的例子更友好和更有用的东西)。

之后退出,这样您就不会继续处理常规页面。

if ($_SERVER['REQUEST_METHOD'] === 'GET') {
  header('Method Not Allowed', true, 405);
  echo "GET method requests are not accepted for this resource";
  exit;
}
您可能需要考虑将 GET 列入

白名单(并测试是否缺少您接受的方法),而不是将 GET 列入黑名单。(因为您可能也不想要 PUT、DELETE 等)。

把下面的代码放在开头。

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
  header('Location: a.html');
  exit;
}

您可以读取当前方法,如果它是 GET,则重定向用户。