【发布时间】:2012-07-10 07:16:55
【问题描述】:
您好,我正在使用 post_controller 挂钩来验证用户是否已登录 但是当验证失败时,我将用户重定向到登录控制器.... 现在的问题是,当它重定向到默认控制器时,再次调用 post_controller 钩子,并且以这种方式无限循环以重复重定向开始。 我想为除登录控制器之外的每个控制器调用 post_controller 挂钩.... 还有一种方法是我不需要一次又一次地加载会话库,因为如果用户已登录,那么它会在后控制器中加载会话库以及通过在配置文件中自动加载... 这是我的代码
//Hooks
$hook['post_controller'] = array(
'class' => 'is_login',
'function' => 'index',
'filename' => 'is_login.php',
'filepath' => 'hooks'
);
//Is_Login Hook
class is_login {
function __construct(){
$this->CI =& get_instance();
if(!isset($this->CI->session)) //Check if session lib is loaded or not
$this->CI->load->library('session'); //If not loaded, then load it here
}
public function index()
{
$login_id = $this->CI->session->userdata('login_id');
$login_flag = $this->CI->session->userdata('logged_in');
if ($login_flag != TRUE || $login_id == "")
{
redirect(site_url().'/welcome_login', 'refresh');
}
}
}
【问题讨论】:
标签: codeigniter hook