我已经将我的codeigniter 2.x升级到3.0,并且我面临会话问题。我的网站有多语言支持,所以我想保持语言会话,即使用户从帐户注销。我已经实现了如下所述的注销功能。
$lang = $this->session->userdata('language');
$this->session->sess_destroy();
$this->session->sess_create();
$this->session->set_userdata(array('language' => $lang));
由于CI 3.x sess_create()已被删除,因此我无法在销毁会话后创建语言会话。我知道我们可以使用cookie助手而不是会话,但如果我必须使用cookie而不是会话的话,我需要做很多更改。
请尝试以下代码。请注意,这里sesssion_var
是一个变量名,用于存储会话
$session = $this->session->userdata('sesssion_var');
$language_session = $session['language'];
$this->session->set_userdata('sesssion_var',$language_session);
使用unset_userdata('sessionnamewhichhastobedestroy')
而不是sess_destroy()
。
或者,如果使用sess_destroy()
,则在$lang
中设置default
值