Codeigniter - 随机注销

时间:2014-04-12 13:04:51

标签: php codeigniter session

我在CodeIgniter 2.1.4中遇到了一个非常奇怪的错误。我将加密的会话存储到数据库中。 config.php中会话的以下配置如下:

$config['sess_cookie_name']     = 'club_session';
$config['sess_expiration']          = time()+(60*60*24); //expire in one day
$config['sess_expire_on_close']    = FALSE;
$config['sess_encrypt_cookie']     = TRUE;
$config['sess_use_database']       = TRUE;
$config['sess_table_name']          = 'session';
$config['sess_match_ip']            = FALSE;
$config['sess_match_useragent']    = TRUE;
$config['sess_time_to_update']     = 300;

我也在config.php文件中设置了加密密钥。

当成员成功登录时,执行以下会话逻辑:

$session_data = array(
    'member_login_state' => TRUE,
    'memberID' => $memberID
);
$this->session->set_userdata($session_data); //set member

会员退出时:

$session_data = array(
    'member_login_state' => '',
    'memberID' => ''
);
$this->session->unset_userdata($session_data); //unset member

我使用以下方法扩展了CI_Controller:

public function member_is_logged_in() 
{
    if ($this->session->userdata('member_login_state') == FALSE) 
    {
        redirect('member'); //redirect to member login
    } 
}

一旦成员登录,每个控制器为成员提供授权区域,如下所示:

class Hub extends MY_Controller {

    function __construct()
    {
        parent::__construct();
        $this->member_is_logged_in(); // check member is logged in
    }

    //methods below.....
}

现在,如果我在未登录时访问这些扩展控制器中的任何方法,我将被重定向到登录页面。登录后,我可以在几个输出不同视图的不同方法之间导航,我会自动注销并重定向回登录页面。这可以随时发生,例如1分钟,2分钟10分钟。

我真的很难过,任何帮助都会受到赞赏

...谢谢

1 个答案:

答案 0 :(得分:0)

在使用useragent时,我遇到了类似的问题。尝试匹配IP。

$config['sess_match_ip'] = TRUE;
$config['sess_match_useragent'] = FALSE;