我有一個 PHP 應用程序,它在用戶瀏覽應用程序時使用會話來保留用戶信息/權限等。我現在被要求配置系統以防止同一用戶多次登錄。我不能使用 cookie。作為身份驗證過程的一部分,我跟蹤用戶何時登錄等,因此想到捕獲用戶 PHP 會話值(使用session_id()),將其存儲在數據庫中,然后在用戶選擇注銷(或自動登錄)時取消該字段通過不活動退出)。通過更新的登錄過程,這應該是可能的。我喜歡這種方法,它非常干凈,但缺點是如果用戶在沒有完全注銷的情況下關閉瀏覽器,則不會使 sessionID 無效。于是我開始思考:如果sessionid 中有值,為什么不檢查 PHP 是否認為它仍然有效?現在從記憶中我似乎記得一個 PHP 函數,它會告訴我特定會話是否仍然有效。我以為是這樣,session_id()但我不認為是這樣,因為它獲取或設置了當前會話。根據我的記憶,該函數將檢查服務器的 session.save_path(/var/lib/php/sessions 使用 Ubuntu 和默認的 PHP.ini)以查看文件是否仍然有效*并相應地報告......但我似乎找不到那個功能。有人可以在這里幫助我嗎?*我很欣賞 PHP 的垃圾收集還有很多不足之處
1 回答

明月笑刀無情
TA貢獻1828條經驗 獲得超4個贊
是的,有這樣的功能來檢查會話狀態是活動的、禁用的還是不存在的
session_status()
此函數返回值作為
PHP_SESSION_DISABLED 如果會話被禁用。
PHP_SESSION_NONE 如果會話已啟用,但不存在。
PHP_SESSION_ACTIVE 如果啟用了會話,并且存在一個。
- 1 回答
- 0 關注
- 119 瀏覽
添加回答
舉報
0/150
提交
取消