我正在开发一个我使用Codeigniter的网站。我使用会话时间out.aftet会话超时,如果我点击任何按钮或任何窗口,然后我的登录屏幕出现在该窗口或div。 例如。 如果我点击我的通知框,那么它也出现在那个div中,我该怎么办呢。
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
我能够在页面加载时处理会话,但是如果会话在页面加载时间过了一段时间后会出现上述错误,那么如何触发会话过期事件
答案 0 :(得分:1)
在页面开始时..检查是否设置了会话变量。如果未设置,则将页面重定向到登录页面。
if(!isset($_SESSION['variable'])
{
header('location:login.php');
}
会话将在配置文件中定义的时间后自动过期。希望这有助于:)
答案 1 :(得分:0)
在登录时将变量设置为true,然后单击或在控制器的构造函数中检查该变量的值。
public Function login()
{
$this->session->set_userdata('loggedIn',TRUE);
}
现在检入控制器
function __construct()
{
parent::__construct();
if ($this->session->userdata('logged_in') == FALSE)
{
redirect('');//if NOT then redirect to home page
}
}
}