表单提交后 $_POST 为空

新手上路,请多包涵

我正在使用 Twitter Bootstrap 构建 Web 应用程序。我有一个表格,用户应该在其中输入他的名字和姓氏,然后单击提交。问题是 $_POST 返回时是空的。我在 Windows 8 机器上使用 WAMP。

 <?php
if(isset($_POST["send"])) {
    print_r($_POST)
} else {
    ?>
    <form class="form-horizontal" action="" method="post">
        <div class="control-group"> <!-- Firstname -->
            <label class="control-label" for="inputEmail">First name</label>
            <div class="controls">
                <input type="text" id="inputName" placeholder="First name">
            </div>
        </div>
        <div class="control-group"> <!-- Lastname -->
            <label class="control-label" for="inputEmail">last name</label>
            <div class="controls">
                <input type="text" id="inputLastname" placeholder="Last name">
            </div>
        </div>
        <div class="form-actions">
            <button type="submit" name="send" class="btn btn-primary">Submit data</button>
            <a href="<?php $mywebpage->goback(); ?>" class="btn">Cancel</a>
        </div>
    </form>
    <?php
}
?>

原文由 pangi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 564
2 个回答

将名称添加到输入类型,例如

<input type="text" id="inputLastname" name="inputLastname" placeholder="Last name">

现在检查 $_POST 变量。

原文由 Sid 发布,翻译遵循 CC BY-SA 4.0 许可协议

您的输入没有 name 属性。设置那些:

 <input type="text" id="inputName" placeholder="First name" name="first_name" />
<input type="text" id="inputLastname" placeholder="Last name" name="last_name" >

另外,看看你检测表单提交的方式:

 if(isset($_POST['send']))

您检查发布数据中是否存在提交按钮。这是一个坏主意,因为在 Internet Explorer 的情况下,如果用户按下回车键提交表单,提交按钮将不会出现在发布数据中。

更好的方法是:

 if($_SERVER['REQUEST_METHOD'] == 'POST')

要么

if(isset($_POST['first_name'], $_POST['last_name']))

更多信息 - Why isset($_POST['submit']) 不好

原文由 RandomCoder 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏