我的PHP表单验证脚本存在问题。
基本上,我有一个表单,当用户提交信息时,它会进行验证检查(通过PHP)并通过echo语句输出结果(Success,Error1,Error2等)
但是,在用户提交表单后(action =同一页面,即它自己发布),验证消息会显示在表单顶部或旁边。我希望回声消息显示在表单下面。
现在页面中正在发生这种情况:
Error: Your password is incorrect
Username:
Email:
Password:
Submit Button
这就是我想要的样子:
Username:
Email:
Password:
Submit Button
Error: Your password is incorrect
有谁知道如何解决这个问题?
以下是代码:
<form id="username_check" name="username_check" method="post">
<tr>
<td><b>Username:</b></td>
<td><input name="Username" type="text" class="textfield" id="Username"
value="<?php echo($_POST['Username']); ?>"
/>
</td>
</tr>
<tr>
<td><b>Email Address:</b></td>
<td><input name="email_address" type="text" class="textfield" id="email_address"
value="<?php echo($_POST['email_address']); ?>"
/>
</td>
</tr>
<tr>
<td><b>Password:</b></td>
<td><input name="PASSWORD" type="password" class="textfield" id="PASSWORD" />
</td>
</tr>
<td><input type="submit" name="submit" value="Submit" /></td>
</form>
<?php
//If form was submitted
if (array_key_exists('submit',$_POST)){
//Do something
echo "Form validation here.....";
}
?>
答案 0 :(得分:2)
这取决于代码的执行顺序。如果您使用的是IDE,请在验证之前设置断点并逐步执行。否则,我很确定我们需要看一些代码来了解为什么会发生这种情况。
尝试:
<form id="username_check" name="username_check" method="post">
<table>
<tr>
<td><b>Username:</b></td>
<td><input name="Username" type="text" class="textfield" id="Username"
value="<?php echo($_POST['Username']); ?>"
/>
</td>
</tr>
<tr>
<td><b>Email Address:</b></td>
<td><input name="email_address" type="text" class="textfield" id="email_address"
value="<?php echo($_POST['email_address']); ?>"
/>
</td>
</tr>
<tr>
<td><b>Password:</b></td>
<td><input name="PASSWORD" type="password" class="textfield" id="PASSWORD" />
</td>
</tr>
<td><input type="submit" name="submit" value="Submit" /></td>
</table>
</form>
<?php
//If form was submitted
if (array_key_exists('submit',$_POST)){
//Do something
echo "Form validation here.....";
}
?>
答案 1 :(得分:0)
如果您正在呼叫
echo $error_message;
在显示表单之前,然后在表单之前显示消息。
如果您希望表单后面的错误消息只是在打印表单后移动echo命令。
答案 2 :(得分:0)
听起来你正在回应你的错误信息,然后回应表格。
反过来做。
答案 3 :(得分:0)
不要回复错误,将其保存到变量中并将其打印在表单打印后面。
通过这种方式,您还可以在表单验证期间每次检查是否发生错误,只需检查错误变量是否为emtpy / false