POST方法没有传递值,而GET方法工作正常


POST method is not passing the values, while GET method works fine

我在本地主机中使用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。

非常感谢你的帮助!

最佳,Lauro

您发布的代码没有任何问题。您可以使用HTTP客户端(例如Postman)检查您的login.php是否正在捕获post值。此外,出于测试目的,请尝试在同一页面中提交表单。则var_dump$_POST变量。此外,您还应该检查$_REQUEST变量是否包含该值。

我猜这是PHPStorm 10的问题(请参阅此处)。他们可能很快就会修好。

您可以使用file_get_contents('php://input');或恢复到PHPStorm的早期版本来解决此问题。

你也可以用Vagrant之类的东西设置一个虚拟机,并配置PHPStorm来使用它。看来PHPStorm已经与Vagrant进行了整合。