使用codeigniter制作离线应用。该应用程序用于存储客户端数据。我使用了codeigniter hmvc方法。现在我在我的应用程序中有大约八个模块,如模板,搜索,客户端,用户等。用户模块检查管理员身份验证。模块的数量将来会增加。
现在检查用户是否以管理员身份登录我已经在__construct()函数中的每个模块中使用了这段代码而没有模板和用户模块,因为当我尝试将此代码放入模板或用户控制器时,然后firefox说Page could not be redirected properly
if(!$this->session->userdata('user_type')){
redirect(base_url().'users/login');
}
将这段代码粘贴到模板和用户模块会产生问题。当我删除此代码,然后一切正常。因此,用户仍然可以在不登录的情况下访问模板和用户模块。
我只是想知道,如果有更好的方法可以不在每个控制器中粘贴这段代码,或者让访客在没有登录的情况下不访问任何模块或方法。
答案 0 :(得分:0)
如果您已指定完整的网站网址,则在重定向中已存在未使用base_url()
的路径
试试这个:
if(!$this->session->userdata('user_type')){
redirect('/users/login');
}
答案 1 :(得分:0)
如果您使用HMVC,则可以这样做:
if(!$this->session->userdata('user_type')){
redirect('module_name/users/login'); // change module_name with your module name
}
<强>更新强> 也许,你重定向一个页面,重定向也...并且循环