登录失败时删除此 URL 字符串,并仅显示 div 错误



我的开发人员构建了我们的注册页面,以便在登录失败时根据 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对我来说有点奇怪。

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

我不熟悉 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

最新更新