我有一个简单的登录表单,在本页面的顶部,我检查提交的表单,如果已经提交,我可以处理登录。
if (!empty($_POST)) {
echo "form submitted";
}
else {
?>
<form style="margin-bottom: 0px !important;" class="form-horizontal" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<div class="content">
<h4 class="title">Login Access</h4>
<div class="form-group">
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-user"></i></span>
<input type="text" placeholder="Username" id="username" class="form-control">
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-lock"></i></span>
<input type="password" placeholder="Password" id="password" class="form-control">
</div>
</div>
</div>
</div>
<div class="foot">
<button class="btn btn-primary" data-dismiss="modal" type="submit">Log in</button>
</div>
</form>
<?php } ?>
我已经使用var_dump($ _ POST);进行了测试,但是在提交时它并没有显示任何帖子变量。我在生产环境中使用XAMPP,所以我想知道这是不是问题?
答案 0 :(得分:3)
表单没有method="post"
,因此您发出了GET请求,$_POST
将为空。
即使不是这种情况,您的表单控件也没有name
属性,因此它们无法成功(因此不会生成任何要放入表单的数据)。
答案 1 :(得分:3)
默认情况下,表单会通过GET
提交其值。要更改此设置,您需要将method
代码的<form>
属性设置为POST
<form method="post" style="margin-bottom: 0px !important;" class="form-horizontal" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
^^^^^^^^^^^^^^^
HERE
正如Quentin已经指出的那样,你也错过了表单元素中的name
属性。因此,如果您检查它,即使您的$_GET
也是空的。