我有以下PHP代码:
if($_SESSION['msg']['login-err'])
{
echo '<p class="error">'.$_SESSION['msg']['login-err'].'</p>';
unset($_SESSION['msg']['login-err']);
}
一切正常。元素内正确显示带有错误的'P'。
我的问题是如何指定我的错误应该显示在哪里?
如不是作为表单中的第一个元素,而是
- 作为第二个例子
- 在
<input name="user" />
之前
? ?
任何建议都非常感谢。
由于您(有些天真地)在测试错误的同时显示错误,因此您应该将代码移到页面的较低位置,以便测试/输出发生在您希望它显示的位置。
理想情况下,您应该将显示代码与逻辑解耦。将您的错误存储在$errors
变量中,以便稍后显示,该变量将传递给您的模板以进行渲染。
与其把echo放到现在的位置,不如把代码改成这样:
$error;
if($_SESSION['msg']['login-err'])
{
$error = $_SESSION['msg']['login-err'];
unset($_SESSION['msg']['login-err']);
}
然后,在输入标签的正上方,像这样做…
<?php echo $error;?>
这不是处理错误的最佳方式…但是它应该能满足你的要求。
"where"取决于你的前端设计。
在登录表单中,我建议在整个表单的顶部或底部显示错误。在联系/注册表单中,在字段旁边(顶部或左侧)显示错误更有意义。完全不同的是逻辑和表示的结合。它们应该分开,因为每段代码应该只有一个修改的理由。你的作品有两个原因:设计或逻辑。
如果你对MVC和OOP做了一些扩展的研究,你会收获很多。