2012年5月2日 星期三

[PHP] CodeIgniter - session->unset_userdata is not working


圖片來源:http://codeigniter.com/


自從上次發現把東西存進 session 存不了後,發現 CodeIgniter Session 預設採用 Cookie 實做 Server Session 的機制,就開始對 CI 的好感下降很多 XD 今天又碰到一個非常擾人的問題,那就想要把存進 session 的東西清掉,但一直用 unset_userdata 卻無法清掉,原先也有碰到,但那時的情境是 logout,所以採用 session->sess_destroy() 來解決即可,現在則不是,所以非常棘手。


最後找到的解法,那就是刪除前,先對待刪除的 key 設值 NULL,如此一來就可以正常處理,這真的太瞎了。這也是為啥我對用 cookie 實做 session 會那麼反感 :P 因為 cookie 是跟瀏覽器實做有十分密切的關係,把 session 搞成 cookie,就會存在很多不可預期的問題產生。


程式碼:


$CI->session->set_userdata( $k , NULL );
$CI->session->unset_userdata( $k );


沒有留言:

張貼留言