PHP验证消息出现在我的用户表单顶部


PHP Validation Message appears on top of my user form

我的一个PHP表单验证脚本有问题。

基本上,我有一个表单,当用户提交信息时,它会(通过PHP)进行验证检查,并通过回波语句输出结果(成功、错误1、错误2等)

然而,在用户提交表单后(操作=相同页面,即它自己发布),验证消息会出现在表单的顶部或旁边。我希望回显消息出现在表单下面。

这就是现在页面上发生的事情:

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.....";
}  
?>

这取决于代码的执行顺序。如果您使用的是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.....";
}  
?>

如果您正在调用

echo $error_message;

在显示表单之前,消息会显示在表单之前。

如果您希望在表单后显示错误消息,只需在打印出表单后移动echo命令即可。

听起来像是在回显错误消息,然后回显表单。

反过来做。

不要回显错误,将其保存到变量中,并在表单打印后打印。

这样,您还可以每次检查表单验证期间是否发生错误,只需检查错误变量是否为emtpy/false