0

使用 codeigniter 制作离线应用。该应用程序用于存储客户端数据。我使用了 codeigniter hmvc 方法。现在我的应用程序中有大约八个模块,例如模板、搜索、客户端、用户等。用户模块检查管理员身份验证。未来模块的数量将会增加。

现在要检查用户是否以管理员身份登录,我在 __construct() 函数的每个模块中都使用了这段代码,没有模板和用户模块,因为当我尝试将此代码放入模板或用户控制器时,Firefox 会说Page could not be redirected properly

if(!$this->session->userdata('user_type')){
    redirect(base_url().'users/login');
} 

将这段代码粘贴到模板和用户模块会产生问题。当我删除此代码时,一切正常。因此用户仍然可以在不登录的情况下访问模板和用户模块。

我只是想知道是否有更好的方法可以做到这一点,而无需在每个控制器中粘贴这段代码或让访客在没有登录的情况下不访问任何模块或方法。

4

2 回答 2

0

如果您已经指定了完整的站点 url,则在重定向中已经存在路径,而无需使用,请base_url()
尝试以下操作:

if(!$this->session->userdata('user_type')){
    redirect('/users/login');
} 
于 2013-07-27T14:43:30.230 回答
0

如果您使用 HMVC,则可以这样做:

if(!$this->session->userdata('user_type')){
    redirect('module_name/users/login'); // change module_name with your module name
}

更新: 也许,您在一个重定向的页面上也重定向......并循环播放

于 2013-07-27T14:46:54.863 回答