我不是CodeIgniter的新手,但我也不是专业人士......我想仍然习惯它。我很想知道是否有人对会话库杀死非活动会话时如何显示会话已超时的消息有任何想法。
我尝试扩展Session.php库并添加:
// Is the session current?
if (($session['last_activity'] + $this->sess_expiration) < $this->now)
{
$this->sess_destroy();
$this->set_flashdata('timeout_message', "Session Timed Out."); // <--added
return FALSE;
}
但我认为当返回FALSE并且我的控制器重定向到将显示flash消息的页面时......闪存数据将被删除。
有什么想法吗?
答案 0 :(得分:0)
我认为你应该采用稍微不同的方式。假设您有某种主控制器,其他所有内容都是为了运行某些基础知识而继承的,那么您可以添加一个版本的方法。每次用户请求新页面时,您只需运行上面的检查。如果失败,您可以销毁当前会话(或者如果有的话,运行注销方法),启动新会话,设置flashdata消息并重定向回主页或任何您想要的地方。这将是一个新的会议,但如果用户已经注销并且所有宝贵的会话数据都已丢失,那肯定没问题?