我保存會話中匿名用戶的首選項。問題是,當用戶登錄時,我必須清除以前的會話並啓動新的會話(出於安全原因)。登錄時Codeigniter會話清除
看來如果我銷燬會話,那麼登錄功能會做註銷!儘管我在sess_destroy
之後使用set_userdata
,但它無法進行登錄(可能會導致破壞後的會話無法使用)。 使用unset
只能在幾個指定的會話中執行。是否有任何方法可以在沒有這種問題的情況下清除用戶的所有會話?
public function login()
{
if($this->session->userdata('id'))
redirect($this->config->base_url());
if($_POST)
{
...
$user=...
if($user)
{
$this->session->sess_destroy();
$this->session->set_userdata('id',$user['id']);
....
}
else
{
....
}
}
$this->load->view('...');
}
http://stackoverflow.com/questions/10509022/codeigniter-unset-all-userdata-but-not-destroy-the-session有你正在尋找的答案。 –
@MaximKumpan,工作正常,請張貼此鏈接作爲答案。 – gerrnar
嚴格來說,這看起來並不重複,所以我在下面貼出了這個答案的摘錄。儘管試圖更徹底地研究你的問題,但是查詢的一個簡單的重新短語可以創造奇蹟。 –