Codeigniter中有一个用于设置会话到期的配置设置:
$config['sess_expiration'] = 14400; //in seconds
但这适用于所有类型的用户角色(admin / frontend用户)。我想为管理员设置一个生命周期会话,只想为前端用户应用以上设置。
我怎么能实现这个目标?
答案 0 :(得分:1)
会话数据存储在服务器上,如果浏览器关闭,它就会被破坏。终身登录时,您需要使用cookie 防爆。 “记住我的选择”
如果要使用会话实现,则需要手动执行:例如。
if ($ROLE != 'admin' && isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
// last request was more than 30 minutes ago
session_unset(); // unset $_SESSION variable for the run-time
session_destroy(); // destroy session data in storage
}
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp
我已经提供了核心php的示例,您可以使用
在codeigniter中实现它 $this->session->userdata('LAST_ACTIVITY');
答案 1 :(得分:1)
$this->load->helper('cookie');
$cookie = $this->input->cookie('ci_session');
$this->input->set_cookie('ci_session', $cookie, '31557600');
虽然我不确定会话永远不会过期,但如果用户以管理员身份登录,您可能会将会话cookie设置为将来一年到期。