簡體   English   中英

PHP會話不存儲數據

[英]PHP session not storing data

假設我在計算機001上查看我的頁面,並且退出會話並移至計算機002並由於某種原因登錄到該會話,但我看不到我的數據,這似乎與我的工作方式有關我的會議。

有誰知道為什么數據沒有保存到用戶?

我該如何解決呢?

您已經注銷...會話的作用域是否不受會話生存期的限制,即登錄->注銷?

您需要持久狀態:使用數據庫。 但是不要將持久性狀態與瞬態會話混淆;-)

數據是按會話保存的,當您注銷時,將銷毀該會話以及所有關聯的數據。 您必須自己存儲(數據庫,文件等)。

從PHP文檔中:“訪問您的網站的訪問者被分配了一個唯一的ID,即所謂的會話ID。它要么存儲在用戶端的Cookie中,要么在URL中傳播。”

當您注銷時,該cookie已過期。

即使您沒有注銷,也破壞了cookie,但是當您移動到第二台計算機時,cookie也不會跟隨您。 因此,PHP無法將新會話與舊會話鏈接。 如果需要鏈接被稱為“會話”的內容(與PHP $ _SESSION相反),則需要將所有這些數據存儲在自己的某個位置。 PHP不會為您做到這一點。

如果您具有顯式注銷功能,則可以在用戶注銷時將$ _SESSION變量寫出到數據庫中。 如果您需要用戶能夠漫游而又無需顯式注銷即可稍后恢復,則可能需要將所有這些信息保存在用戶訪問的每個頁面上。

除非您將會話存儲在數據庫中並在每次用戶登錄時重新填充$ _SESSION,否則它們不會在計算機之間跟蹤您。

就是這樣,會話不會從不同的IP來源繼續進行。 它們也會在一定時間后過期。 如果要從登錄/注銷過程中繼承數據,則需要將其存儲在數據庫中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM