检查在PHP中发布的简单表单

时间:2015-01-25 17:05:37

标签: php html

我有一个简单的登录表单,在本页面的顶部,我检查提交的表单,如果已经提交,我可以处理登录。

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,所以我想知道这是不是问题?

2 个答案:

答案 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也是空的。