我是一個PHP新手,正試圖圍繞會話的工作方式來解決我的問題。我有一個關於在PHP會話的行爲的一般問題。當用戶仍然在網站上時,PHP會話過期
所以我明白,每次調用session_start()時,垃圾收集器都可能以一定的概率被調用。所以我的第一個問題是,假設我的網站只有100個用戶,並且有2000個會話存儲在Web服務器上的session.save_path()文件夾中。如果作爲100個用戶之一的用戶A登錄到該網站並且調用session_start(),那麼是屬於所有用戶銷燬的用戶A之前的會話中的一個還是2000個會話之一?
我的第二個問題是,可以說用戶A在網站上約30分鐘,'session.gc_maxlifetime'設置爲1440秒,即24分鐘,24分鐘後用戶A的會話可能會被垃圾收集器刪除,即使用戶仍然在網站上活動?
如果是的話,是一個新的會話,其中以前刪除的會話的所有相同信息每24分鐘開始一次,因爲這將防止用戶數據丟失。
我很抱歉,如果這些問題聽起來很簡單,但我很困惑會議的概念,並希望澄清這個概念。
任何幫助將不勝感激。
關於原始海報關於「用戶A」與所有用戶的會話的問題 - 運行垃圾收集時,會影響所有會話。 PHP無法區分用戶與新任意用戶的新會話。 –
感謝您的回覆。 – anonuser0428
我對本傑明的問題有一個後續問題。我想知道會話生存期是否在每次頁面刷新時重置,或者在每次刷新頁面後是否開始全新會話?因爲刷新頁面時,代碼將重新運行,並且會運行session_start()。 – anonuser0428