1

我正在编写一个测试 HTML5 登录表单,并设置表单如下:

<form id="login" method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
    <h1>Log In</h1>
    <fieldset id="inputs">
        <input id="username" type="text" placeholder="Username" autofocus required>   
        <input id="password" type="password" placeholder="Password" required>
    </fieldset>
    <fieldset id="actions">
        <input type="submit" id="submit" name="submit_data" value="Log in">
    </fieldset>
</form>

单击提交时,表单将返回到同一页面。当我打印 POSTed 元素的数组时,我只看到一个“submit_data”。“用户名”和“密码”没有通过。

我哪里错了?

4

2 回答 2

5

您没有为输入指定名称,例如

<form id="login" method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
    <h1>Log In</h1>
    <fieldset id="inputs">
        <input id="username" type="text" name="username" placeholder="Username" autofocus required>   
        <input id="password" name="password" type="password" placeholder="Password" required>
    </fieldset>
    <fieldset id="actions">
        <input type="submit" id="submit" name="submit_data" value="Log in">
    </fieldset>
</form>

这可能会解决这个问题。

于 2012-07-15T17:28:40.540 回答
0

你可以只检查 isset($_POST['username']) 和 isset($_POST['password']) 而不是 print_r (我假设你正在使用)?

<input type="..." NAME="username" ..>  You haven't set var name.

也代替占位符,设置 value="Username" 和 value="Password"。如果仅使用占位符,则可能不会传递任何值。看到这个测试: http ://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_input_placeholder

当您不提交任何内容时,不会传递任何值。一旦你输入了一些东西,值就会被传递。

于 2012-07-15T17:31:18.740 回答