检查登录时如何防止重载循环?

时间:2013-06-29 07:25:26

标签: php mysql codeigniter

我整天都在苦苦挣扎,但没有找到答案。我正在使用CodeIgniter。

问题是当这个人到达主页时,我想检查他们是否已登录。如果不是,我希望他们能够查看主页。如果是,他们应该直接进入他们的仪表板。

我理解问题是索引函数反复运行导致重定向,但我找不到解决方法。

在我删除index.php并将我的主页设为登录页面之前,这一功能完美无缺。

这是我的代码:

 function index(){  
    if (!$this->ion_auth->logged_in())
    {
        redirect('home', 'refresh');
    }
    elseif (!$this->ion_auth->is_admin())
    {
        //redirect them to the home page because they must be an administrator to view this
        redirect('user/dashboard', 'refresh');
    }
    else
    {
        //set the flash data error message if there is one
        $this->data['message'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('message');

        //list the users
        $this->data['users'] = $this->ion_auth->users()->result();
        foreach ($this->data['users'] as $k => $user)
        {
            $this->data['users'][$k]->groups = $this->ion_auth->get_users_groups($user->id)->result();
        }

        //$this->_render_page('auth/index', $this->data);
        redirect('user/dashboard', 'refresh');
    }
}

我的默认控制器是auth(跟踪登录)。如果我需要提供任何其他代码,请告诉我。

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

if (!$this->ion_auth->logged_in())
{
     redirect('home', 'refresh'); // remove this line
     //load your view files instead
     // the redirect is loading this  index function repeatedly 
}