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

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