3

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

假设我有两个页面a.htmlaction.php。现在a.html是普通页面,可以通过任何方法访问,并将信息提交给action.php。但是我希望提交给action.php的信息只能通过post方法提交。

4

3 回答 3

9

发送一个 Method Not Allowed 标题以及一些解释性文本(最好是比我下面的示例更友好、更有用的东西)。

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

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 等)。

于 2012-06-01T08:13:40.157 回答
1

将下面的代码放在开头。

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
  header('Location: a.html');
  exit;
}
于 2012-06-01T08:12:02.903 回答
0

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

于 2012-06-01T08:12:16.787 回答