为什么我的表单使用GET而不是POST?

时间:2018-01-13 20:25:14

标签: php forms

当我尝试使用此表单从mysite/formmysite/import提交表单时:

<form action="../import" method="POST">
    <input type="text" name="hidden" value="hi">
    <input type="submit">
</form>

导入网站似乎没有收到帖子。我被重定向到导入网站,但数据似乎并不存在。检查时我发现了这个:

var_dump($_SERVER['REQUEST_METHOD'])提供string(3) "GET"

var_dump($_POST)提供array(0) {}

var_dump($_REQUEST)提供array(0) {}

当从导入网站使用相同的表单时,一切正常,当我将表单页面用于某个随机的其他页面时,它也可以正常工作。 我已经尝试将method='POST'添加到所有内容中,或者将formmethod="post" formaction="../import"添加到提交按钮,但没有任何作用。

2 个答案:

答案 0 :(得分:2)

我的猜测是你有一个中间重定向。乍一看,您的代码没有任何问题。在浏览器中打开开发人员工具(确保保留日志,以便在浏览器导航到新页面时不会清除日志),并观察网络活动。 (您也可以使用像Fiddler这样的工具来执行此操作)。我敢打赌你看到一个POST,接着是GET重定向到最后一页。

完全相同的代码在另一个站点上运行的事实可能表示.htaccess文件或正在播放的内容。

答案 1 :(得分:-2)

发现了问题。

使用mysite/import时出现问题,当我将操作更改为action='../import/'(而不是action='../import')时,它可以正常工作。