为什么$ _SERVER [' REQUEST_METHOD']总是GET?

时间:2014-10-22 11:14:23

标签: php forms

我对此感到有点困惑。我希望这是我错过的非常明显的事情!我有一个非常简单的形式:

<form class="form-signin" role="form" name="login" method="POST" action="/page">
  <input type="password" name="password" />
  <input type="submit" value="Sign in" />
</form>

注意:此页面位于/page,并在以下HTML后回显:

/page我在文件的最顶部有这个:

<?php
var_dump($_SERVER['REQUEST_METHOD']);

出于某种原因,当我提交此表单时,始终会显示为GET。如果我将action="/page"部分取出,则会显示为POST。我在这里缺少什么?

注意:即使我加载了该页面,然后在上述var_dump()调用后退出,它仍会显示GET

在检查员的时间表中,我看到了这个请求:

enter image description here

1 个答案:

答案 0 :(得分:11)

感谢对我的问题的评论,我发现答案是在apache配置中。看起来,因为index.php文件位于名为page的文件夹中,所以apache会自动重定向到带有斜杠的页面。这是Apache directorySlash documentation中的默认设置。

当他们警告不要关闭此功能时,我会将网址更改为我发布的内容。或者,当然,我可以添加一个.htaccess文件,并设置正确的重写规则。\

感谢大家的帮助!作为旁注,Safari的检查员在这种情况下让我有点想要。 Chrome最适合进行测试。