有沒有辦法在會話中取消設置所有用戶數據而不必使用會話銷燬?我正在嘗試登錄我的用戶,並且需要一次取消所有用戶數據。跟蹤會話中設置的所有可能的用戶數據變得單調乏味。我只想解除可能在userdata中設置的所有內容。CodeIgniter:取消設置所有用戶數據,但不會破壞會話
2
A
回答
14
這很簡單!
$this->session->unset_userdata('some_name');
或
$array_items = array('username' => '', 'email' => '');
$this->session->unset_userdata($array_items);
我希望這有助於!
編輯:它看起來像你實際上沒有跟蹤會議中的任何事情(有點奇怪?)。你可以調用這個函數,我寫了:
function unset_only() {
$user_data = $this->session->all_userdata();
foreach ($user_data as $key => $value) {
if ($key != 'session_id' && $key != 'ip_address' && $key != 'user_agent' && $key != 'last_activity') {
$this->session->unset_userdata($key);
}
}
}
當然,這假設你使用默認的CI會話建立雖然。
+0
我不想在userdata中不小心留下不應該在那裏的東西。我認爲你的解決方案可能工作。也許這會很好地覆蓋'unset_userdata',這樣它就可以使用一個不能通過的鍵(它只會全部刪除)。思考? – StackOverflowNewbie
2
從笨論壇複製:
它所做的就是殺死了用戶的cookie,但用戶數據將 保持會話類中,直到當前請求結束。 會話將在下一個請求中重新初始化,並且 不會有用戶數據可用。基本上,它所做的只是切斷用戶和服務器會話之間的鏈接 ,但直到請求結束,數據仍然保留爲 。
如果這是一個問題了,你可以這樣做:
$這個 - >會話級>用戶數據=陣列();
1
我管理它,請嘗試。
$this->load->library('session');
//寫參數會話數據
$this->session->unset_userdata('sessiondata');
//如果你想取消設置會話組那就試試吧
$array_items = array('username' => '', 'email' => '');
$this->session->unset_userdata($array_items);
相關問題
- 1. codeigniter會話用戶數據設置
- 2. CodeIgniter設置用戶數據會話
- 3. CodeIgniter破壞我的會話沒有
- 4. 會話不破壞
- 5. Codeigniter會話(用戶數據)
- 6. Codeigniter - 獲取所有用戶會話數據
- 7. 設計銷燬會話不會破壞會話嗎?
- 8. Codeigniter會話自動被破壞?
- 9. 無法破壞codeigniter中的會話
- 10. 不能在會話codeigniter中設置用戶數據
- 11. PHP會話未設置或PHP會話破壞
- 12. 有沒有機會破解codeigniter會話?
- 13. 會話不破壞laravel
- 14. Logut會話不被破壞
- 15. Cakephp會話破壞
- 16. Codeigniter無法反序列化 - 錯誤會破壞設置flashdata的會話
- 17. PHP數據會話重定向破壞
- 18. Codeigniter會話不會未設置
- 19. SimpleMembershipProvider不會破壞會話後WebSecurity.SignOut
- 20. 註銷不會破壞會話
- 21. 使用CakePHP破壞會話
- 22. Cookie破壞會話破壞,爲什麼?
- 23. 破壞特定會話的會話Funda
- 24. CodeIgniter Cookie不會設置,但會話正在工作?
- 25. 設置Window.Content不會破壞之前存在的用戶界面?
- 26. 取消設置變量,但不會取消設置
- 27. 當使用CodeIgniter的數據庫會話時,取消設置連接到會話的數組的內部元素
- 28. 會話數組未被取消設置
- 29. 鉻和火狐不會取消設置會話數組,但IE和Safari是做
- 30. CodeIgniter會話用戶數據問題
到底爲什麼你不希望使用'$ this-> session-> sess_destroy();',因爲它確實做了你想做的事情? –
我修改了我的答案,以更好地回答你的問題。 – envysea