我正在制作一个测试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'。 “用户名”和“密码”未通过。
我哪里错了?
答案 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
当您提交任何内容时,不会传递任何值。输入内容后,会传递值。