2013-07-24 50 views
2

我准备升级我的网站,并且在新的更新中,需要新的会话变量user_level。我想知道是否有服务器端,我可以结束所有会议,而不必实际编码任何东西。如果没有,我的意图是测试是否设置了变量,如果不是,我会销毁会话,迫使用户重新登录。 所以这样的事情..如何删除所有会话信息?

if(!$this->session->userdata['user_level']) 
{ 
    $this->session->sess_destroy(); 
} 
+0

我个人会这样做,因为它可以让你做一些事情,例如警告用户他们需要重新登录,因为网站升级。如果您采取了一种替代方法,如只删除所有会话存储(在文件或数据库中),那么您将无法提供更多用户友好的转换。 –

+0

我将如何删除好奇心会话存储?另外,我的网站并不大。只有65个用户(尽管我今天发布了它),所以我认为这不会那么糟糕。 – user2605381

回答

2

userdatafunction不是arraySession docs

试试这个,

if(!$this->session->userdata('user_level')) 
{ 
    $this->session->userdata = array(); 
    $this->session->sess_destroy(); 
} 

如果你想unset a single session variable然后用它像,

$this->session->unset_userdata('user_level');// to remove user_level from session 

阅读http://ellislab.com/forums/viewthread/195025/

+0

问题实际上并未删除会话。它确保每个用户都有新的变量,但我不相信有什么办法可以自动删除系统开始正确的所有会话? – user2605381

+0

@ user2605381测试以上我已对其进行了更改。 –

+0

哇。我一直在我的所有代码中以数组的形式访问它。:\为什么它仍然作为一个数组工作呢? – user2605381