表单提交后$ _POST为空

Mik*_*ord 8 html php forms post

我在我的服务器上设置了这个测试页面.请告诉我为什么$_POST即使我提交表单,数组也不包含任何内容.我已经在三种不同的浏览器中尝试了这一点,但没有任

<?php print_r($_POST);?>

<form method="post">

<p><label>Email: </label>
<input type="text" id="login_email" />
</p>

<p><label>Password: </label>
<input type="password" id="login_password" />
</p>

<p><label>Remember Me?: </label>
<input type="checkbox" id="login_remember" />
</p>

<p>
<input type="submit" value="Login" />
</p>

</form>
Run Code Online (Sandbox Code Playgroud)

我已经写了多年的PHP,这从来没有发生过.这段代码有什么问题?

Aym*_*ieh 52

您的输入元素没有名称属性.应该:

<input type="text" id="login_email" name="login_email" />
Run Code Online (Sandbox Code Playgroud)

如果input元素没有name属性,则不会将其作为POST数据的一部分发送.


Bry*_*ynJ 9

那么,你没有表格标签的动作?它应该是脚本名称:

<form method="post" action="scriptname.php">
Run Code Online (Sandbox Code Playgroud)

...而且您也没有为每个表单输入设置名称 - 浏览器不会将ID作为元素名称提交.

  • 大多数浏览器确实表现出这种行为,但根据官方规范,动作属性是必需的 - http://www.w3.org/TR/html401/interact/forms.html. (6认同)