0

我的开发人员根据 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 标签?

谢谢

4

2 回答 2

0

在你的控制器的 loginAction 中改变它

$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
于 2012-12-09T17:01:42.300 回答
0

msg通过参数传递 aGET对我来说有点奇怪。

请参阅此线程,讨论其他向页面发送消息的方法,使用sessionscookiesdatabase这里

我不熟悉 zend 框架,但必须有一种方法可以通过会话设置“flash”消息。

于 2012-12-09T03:49:46.567 回答