未使用HTML5发布的输入元素

时间:2012-07-15 17:25:47

标签: forms html5 post

我正在制作一个测试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'。 “用户名”和“密码”未通过。

我哪里错了?

2 个答案:

答案 0 :(得分: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>

这可能会解决这个问题。

答案 1 :(得分: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

当您提交任何内容时,不会传递任何值。输入内容后,会传递值。