2009-10-28 96 views
0

HI,沒有存儲數據

說,如果我的電腦上001瀏覽我的網頁,我退出了會議,並移動到計算機002和登錄到由於某種原因,我沒有看到屆PHP會議我的數據看起來像是我做了我的會議。

有沒有人知道爲什麼數據沒有保存到用戶?

我該如何修復它?

+1

您是否將用戶數據的會話混淆?我理解你說的是'會話',但是真正在尋找用戶數據的去向,或者我在這裏也是如此...... – Jakub 2009-10-28 13:40:47

+0

答案會被接受嗎? – jldupont 2009-11-09 20:59:07

回答

2

來自PHP文檔:「訪問您的網站的訪問者被分配了一個唯一的ID,即所謂的會話ID,它可以存儲在用戶端的Cookie中,也可以在URL中傳播。

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

即使您不註銷,銷燬cookie,當您移動到第二臺計算機時,cookie也不會跟着您。所以PHP無法將新會話與舊會話鏈接起來。如果您需要鏈接您所稱的「會話」(而不是PHP $ _SESSION),那麼您需要將自己的所有數據存儲在某個地方。 PHP不會爲你做。

如果您有明確的註銷功能,您可以在用戶註銷時將$ _SESSION變量寫出到數據庫中。如果你需要一個用戶能夠在沒有明確註銷的情況下漫遊和恢復,那麼你可能需要在用戶訪問的每個頁面上保存所有這些信息。

2

數據按會話保存,當您註銷時,會銷燬會話和所有關聯的數據。 你必須自己存儲它(數據庫,文件,...)。

4

您已註銷...不是會話的會話範圍,即登錄 - >註銷?

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

1

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

0

就是這樣,會議不會從不同的知識產權來源繼承。它們也會在一段時間後失效。如果您想從登錄/註銷過程中傳輸數據,則需要將其存儲在數據庫中。