如何創建實時PHP會話控制?我的意思是,當用戶登錄時,我創建了一個PHP會話($_SESSION[]
),並將它存儲在一個表(MySQL)中,但是如何知道用戶何時註銷?我明顯可以檢測到用戶何時註銷並銷燬會話,但如果用戶從未單擊,會發生什麼情況註銷如何在會話關閉時檢測到該問題?
謝謝!PHP實時會話控制。怎麼樣?
0
A
回答
1
這是一個常見問題。當用戶不單擊註銷按鈕時,會話將再次可用。通常情況下,垃圾收集器會在定義的時間後清理會話。
http://www.wikihow.com/Create-a-Secure-Session-Managment-System-in-PHP-and-MySQL
這裏是一個很好的教程如何建立一個MySQL的會話處理程序。所以讓PHP管理這個部分。
重要組成部分,是在這裏:
<?php
// set our custom session functions.
session_set_save_handler(array($this, 'open'),
array($this, 'close'),
array($this, 'read'),
array($this, 'write'),
array($this, 'destroy'),
array($this, 'gc'));
// This line prevents unexpected effects
//when using objects as save handlers.
register_shutdown_function('session_write_close');
?>
您定義清理您的會話功能的最後一個陣列。
-1
我有這個問題,但我解決了通過創建另一個ID,所以我不必使用SESSION ID(我認爲它不安全),所以每次用戶登錄我的系統時,他會得到另一個ID,我的函數檢查如果用戶有權檢查數據庫上的用戶標識,該用戶標識也保存在我的會話中,以檢查它是否與我的數據庫上的標識相同。
我認爲這是另一個安全措施,以確保我只有一個用戶登錄實例,並且直到現在我都沒有問題。
但是,如果您必須知道用戶何時斷開了您的系統,這將無濟於事。
相關問題
- 1. 會話的控制持續時間PHP
- 2. PHP - 會話和控制器
- 3. Plone版本控制,怎麼樣?
- 4. 視圖和控制器彼此不可見?怎麼會這樣?
- 5. PHP AJAX控制會話變量消失
- 6. Php,會話ID控制不起作用?
- 7. 製作按鈕怎麼樣?
- 8. 問題:控制會話超時
- 9. 一個會話應該在其他會話進入函數之前完成一個php函數,怎麼樣?
- 10. PHP - 用於臨時控制的會話使用
- 11. PHP會話:如果我將會話期限設置爲10天,該怎麼辦?
- 12. 會話獲取超時時彈簧控制器@SessionAttribute會發生什麼
- 13. 我怎樣才能得到實際控制器在後方法
- 14. PHP會話超時
- 15. PHP會話超時
- 16. WebBrowser控制會話共享?
- 17. Laravel5.3會話控制器類
- 18. 會話登錄控制
- 19. 我怎樣才能控制器功能
- 20. 怎樣的raw_input使用控制PWM
- 21. 一起跑時控制器測試失敗,單獨跑時通過。怎麼會這樣?
- 22. preg_match:如果有html實體會怎麼樣?
- 23. 如果Xamarin Forms DependencyService有多個實現會怎麼樣?
- 24. 同一會話由兩個瀏覽器共享?怎麼會這樣?
- 25. PHP:存儲文件位置...如果被覆蓋,會怎麼樣?
- 26. PHP會話已經開始了怎麼辦?
- 27. 最佳實踐:視圖控制器加載時間很長時該怎麼辦?
- 28. MPMoviePlayerViewController,如果失敗會怎麼樣?
- 29. 如果新建失敗會怎麼樣?
- 30. 在控制器端提交mvc3 ajax。怎麼樣?
每次用戶在您的網站上進行交互時,都可以更新您的表格的時間,並將那些沒有充當註銷的用戶更新。 – harrrrrrry 2015-01-26 20:07:29
你沒有。您可以使用每隔* n *秒自動刷新一次的隱藏框架,使用「心跳」或其他方法生成圖像或其他東西的ajax – 2015-01-26 20:07:59
會話在定義的超時(默認爲24分鐘)後自動失效。會話cookie也可以配置爲當瀏覽器窗口關閉時而不是在上一次請求之後終止。 – Dai 2015-01-26 20:08:05