我目前正在尝试添加到我的验证钩子(检查用户/公司是否处于活动状态)并且我设法通过一些修改来使这个工作正常...
我现在正试图做我在每个班级做的事情>函数(或__construct)并进行基本检查是用户使用我的会话数据'loginuser'登录,并将其设置为布尔...
我正在尝试使用此功能但请继续获取TOO_MANY_REDIRECTS。它与我在__construct或每个公共函数中使用的代码相同,并且它在那里工作完美(除非为非对象更改)...
function logged_in() {
$CI =& get_instance();
if(!$CI->session->userdata('loginuser')) {
redirect('account/login');
}
}
我不知道为什么它不会在名为'post_controller_constructor'的钩子中工作。 我可能忽略了一些非常简单的事情,但我已经在圈子里走了好几个小时,谷歌/搜索者没有任何用处。这也是一件非常基本的事情......
答案:对于在家玩耍的人来说: function logged_in() {
$CI =& get_instance();
if(!$CI->session->userdata('loginuser')) {
if (uri_string() != 'account/login' && uri_string() != 'login' && uri_string() != 'account/register'){
$CI->session->set_flashdata('flashError', 'Please login to continue');
redirect('account/login');
}
}
}
答案 0 :(得分:1)
你的代码正在做你想要的,但有一点疏忽。
在进行任何类型的重定向之前,您需要检查当前路由是否为登录页面。
我想,在你之前检查过控制器构造函数之前,你没有把它放在帐户控制器中。
If (user is not logged in) {
If (Current route is not a login page) {
Redirect user to login page
}
}