PHP 5.5 $ _POST数组为空

时间:2016-03-07 00:15:46

标签: php html post intellij-idea

编辑:我使用了if语句的var_dump($ _ POST) OUTSIDE

我尝试了多种解决方案,但没有一种方法有效,所以这是我解决此问题的最后一次尝试。我有一个用HTML编写的表单,通过POST将数据发送到PHP脚本,无论出于何种原因,PHP脚本只读取$ _POST为空。

这是我的PHP代码:

if (isset($_POST['login'])) {
    die('test');
}

这是我的HTML表单:

<form action="api/login.php" method="post">
    <input type="text" name="login-email" placeholder="Email">
    <input type="password" name="login-password" placeholder="Password">
    <input type="checkbox" name="login-remember-me" checked>
    <button name="login" type="submit">Login</button>
</form>

var_dump($_POST);返回:

  

array(0){}

file_get_contents('php://input');返回:

  

登录电子邮件=用户%40email.com&安培;登录密码= 123123&安培;登录记-ME = ON&安培;登录名=

就像我说的那样,我已经尝试了几十次谷歌搜索这个问题后遇到的每一个解决方案。我在使用IntelliJ IDEA 15.0.4的Windows 10 Enterprise x64上使用PHP 5.5.32 NTS。

编辑:执行var_dump($ GLOBALS),我的输入保持在[“HTTP_RAW_POST_DATA”]内,并没有在其他地方结束。我也尝试过使用PHP 5.6.19 NTS而不是5.5.32,但仍然没有解决这个问题。

1 个答案:

答案 0 :(得分:1)

我注意到您在提交按钮时没有value。试着把价值放在上面。这就是为什么你的PHP代码总是不在if语句中,因为没有设置$_POST['login']

根据您的帖子:

  

登录电子邮件=用户%40email.com&安培;登录密码= 123123&安培;登录记-ME = ON&安培;登录名=

所以在PHP代码中:

if (isset($_POST['login'])) { //there is no value on $_POST['login] so it skips the statement.
    var_dump($_POST);
}

但如果你像下面的样本那样给它一个值:

<form action="api/login.php" method="post">
    <input type="text" name="login-email" placeholder="Email">
    <input type="password" name="login-password" placeholder="Password">
    <input type="checkbox" name="login-remember-me" checked>
    <button name="login" value="login" type="submit">Login</button>
</form>

它会产生这样的东西:

  

登录电子邮件=用户%40email.com&安培;登录密码= 123123&安培;登录记-ME = ON&安培;登录名=登录

如果条件满足,那么你就是PHP。

if (isset($_POST['login'])) {
    var_dump($_POST);
}

<强>输出:

  

array(4){[“login-email”] =&gt; string(4)“test”[“login-password”] =&gt; string(4)“test”[“login-remember-me”] =&gt; string(2)“on”[“login”] =&gt; string(5)“login”}