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