我的开发人员构建了我们的注册页面,以便在登录失败时根据 URL 中的字符串显示div。
当登录失败时,这将添加到 URL /login?msg=invalid
我的login.phtml中基于msg=参数显示错误消息的PHP是
<?php
$msg = "";
$msg = $_GET['msg'];
if($msg==""){ $showMsg = ""; }
elseif($msg=="invalid"){ $showMsg = ' <div class="alert alert-error">
<a class="close" data-dismiss="alert">×</a>
<strong>Error!</strong> Login or password is incorrect!
</div>'; }
elseif($msg=="disabled"){ $showMsg = "Your account has been disabled."; }
elseif($msg==2){ $showMsg = "Your account is not activated. Please check your email."; }
?>
在控制器中,重定向到该 URL 是
else //email id does not exist in our database
{
//redirecting back with invalid email(invalid) msg=invalid.
$this->_redirect($url."?msg=invalid");
}
我知道禁用帐户还有其他一些验证类型等。我正在重新设计整个界面,并希望摆脱这种验证,以便在登录失败时显示div 标签但不显示 URL 字符串。
如果重要,我想显示的新div 是
<div class="alert alert-error alert-login">
Email or password incorrect
</div>
我想在我的login.phtml和控制器中替换我自己的php,但不是一个好的程序员。我可以用什么替换$this->_redirect($url."?msg=invalid");
,以便不向 URL 添加任何字符串并显示相应的div 标签?
谢谢
通过GET
参数传递msg
对我来说有点奇怪。
请参阅此线程,讨论使用 sessions
、 cookies
或 database
向页面发送消息的其他方法。
我不熟悉 zend 框架,但必须有一种方法可以通过会话设置"flash"消息。
在登录中更改此设置您的连接者的操作
$this->_redirect($url."?msg=invalid");
自
$this->view->message = $msg;
然后将代码添加到 login.phtml
<?php if ($this->message) :?>
<div class="alert alert-error alert-login">
Email or password incorrect
</div>
<? endif; ?>
... your form code there