之后,错误的登录尝试的Joomla 3重定向(Joomla 3 redirect after wro

2019-10-20 15:29发布

使用IAM的Joomla登录模块。 登录和注销重定向到其在模件设置中设置的页面。

我的问题是状态,当用户试图用错误的用户凭据登录。 在这种情况下,用户将被重定向到组件/用户/?视图=登录页面。 在我而言,这个页面是不是在使用,也不是像设计网页的其余部分。 因此,我想将用户重定向,错误登录后,到前一页。

没有任何人有一个线索,如何解决呢?

谢谢

Answer 1:

您将需要修改用户控制器。 但是为了保持其“更新证据”不能修改核心代码,这就是为什么我们会做一个覆盖:

  1. 转至components/com_users/controllers/和复制文件称为user.php ,你可以调用一个新的文件user2.php
  2. 打开user2.php文件并重新命名控制器类UsersControllerUser2
  3. 创建您的登录模块的模板覆盖(使它更新也证明),创建一个templates/YOUR_TEMPLATE/html/mod_login文件夹,复制modules/mod_login/tmpl/default.php文件中有。
  4. 从在步骤3中和变化登录模块任务创建打开的文件<input type="hidden" name="task" value="user.login" /><input type="hidden" name="task" value="user2.login" />
  5. 打开user2.php文件再次,并修改这部分代码(大约77-82行):

$ APP->重定向(JROUTE :: _( '的index.php选项= com_users&视图=登录?',假));

更改$app->redirect路由到任何你想要的:)



Answer 2:

要做到这一点,最好的办法是用一个模板,以替换mod_login模块。 此链接详细介绍了如何做到这一点的具体细节。

http://docs.joomla.org/Layout_Overrides_in_Joomla

基本上,你复制位于/modules/mod_login/tmpl/default_login.php文件/模板/ {} your_template中/ HTML / mod_login,这是的Joomla会用什么来渲染任何mod_login模块,只要你保留的文件名相同。

在行116,你会看到这行代码:

    <input type="hidden" name="return" value="<?php echo $return; ?>" />

你现在有返回值应该是什么完全编程控制。 我通常通过在URL中的Base64编码返回PARAM,我又解析并插入作为返回隐藏输入在我的模块模板覆盖值

一个侧面说明,你永远不应该改变的核心文件,或将沿侧核心文件自定义文件,适用于各种原因,主要是任何后续的Joomla更新可以消灭你的变化打破你的网站。



Answer 3:

在的Joomla为了留在同一页面错误登录后3.6.1,你必须改变在/components/com_users/controllers/user.php线

找:

if (true !== $app->login($credentials, $options))
    {
        // Login failed !
        // Clear user name, password and secret key before sending the login form back to the user.
        $data['remember'] = (int) $options['remember'];
        $data['username'] = '';
        $data['password'] = '';
        $data['secretkey'] = '';
        $app->setUserState('users.login.form.data', $data);
        $app->redirect(JRoute::_('index.php?option=com_users&view=login', false));

和公正的评论的最后一行:

        // $app->redirect(JRoute::_('index.php?option=com_users&view=login', false));

就这样。



文章来源: Joomla 3 redirect after wrong login try