我在localhost中使用POST方法提交表单时遇到一些问题。我创建了一个非常简单的页面来测试GET和POST方法是否都有效,但只有GET方法才能正确检索值。代码如下:
表单代码:
<form method="post" action="login.php">
<input type="text" name="username"><br>
<input type="password" name="password"><br>
<input type="submit" value="Login">
</form>
在login.php页面中,我只发出一个简单的命令来测试$ _POST变量中是否有任何值:
<?php var_dump($_POST);?>
原来是一个空数组。
但是,如果我将方法更改为GET,则命令
<?php var_dump($_GET);?>
打印以下结果:
array (size=2)
'username' => string 'test' (length=4)
'password' => string 'test' (length=4)
我搜索了很多线程,但是大多数线程都指向编码错误,这似乎不是这里的情况。在任何情况下,如果此信息有用,我使用的是WampServer 2.5和PhpStorm 10。
非常感谢你的帮助!
最佳, 劳罗
答案 0 :(得分:0)
您发布的代码没有任何问题。您可以使用HTTP客户端(例如邮递员)检查您的login.php是否正在捕获帖子值。此外,出于测试目的,请尝试在同一页面中提交表单。然后var_dump
$_POST
变量。此外,您还应检查$_REQUEST
变量是否包含该值。
答案 1 :(得分:0)
我的猜测是这是一个PHPStorm 10问题(see here)。他们很快就会解决它。
您可以使用file_get_contents('php://input');
或恢复到早期版本的PHPStorm来解决此问题。
您可能还可以使用Vagrant等设置虚拟机并配置PHPStorm以使用它。看起来PHPStorm已经有integration with Vagrant。