2010-07-24 64 views
5

我一直在網上看了一段時間,HTML5本地存儲似乎看起來像對我有用的東西和解決我的問題,我有PHP會話,問題是,他們不一致,即使我設置他們記住我下一次我來到我的主頁我被帶到登錄頁面,這不是總是,但經常,PHP會話對我來說證明是不一致的。我如何使用邊PHP的HTML5本地存儲,用於PHP會話,並存儲其他信息,PHP使用

我想知道,如果我可以使用本地存儲一致的會話存儲,PHP可以使用,所有的例子,我在網上看到使用JavaScript。

回答

9

Localstorage用於保存數據客戶端,以便即使客戶端處於脫機狀態,也可以訪問它,在這種情況下,如您所說,使用JavaScript訪問它。

PHP會話將信息存儲在服務器上。使用localStorage也是一個壞主意,因爲它可以被客戶端修改,所以客戶端可以聲稱以不同的用戶身份登錄,這顯然是一個安全問題。

您的PHP配置有問題嗎?是否有可以更改的PHP會話cookie的超時值?

+0

那麼我設置我的會話cookie爲604800秒,即7天,如果記住我檢查,否則它的常規會話,當瀏覽器退出時消失,我使用Zend框架,這是我的代碼行,如果(!empty($ this-> rememberMe)){ Zend_Session :: rememberMe(604800); } else { Zend_Session :: forgetMe(); } 多數民衆贊成在所有這一切,我不知道什麼可能會出錯,是它的工作,但它不一致,它在幾個小時內隨機掉落,它停留的最多是2天,它消散即使瀏覽器窗口打開 – 2010-07-24 12:52:08

+0

正在使用正常的PHP $ _SESSION變量更成功嗎?這是瀏覽器的問題嗎? – tjvr 2010-07-24 13:25:43

+0

我沒有嘗試原始的$ _SESSION,但它不是一個瀏覽器問題,我的朋友和阿爾法測試人員也注意到同樣的問題。 – 2010-07-24 13:27:05

3

編號PHP在服務器上運行,並且無法訪問瀏覽器的本地存儲API。

3

我曾經遇到過這種情況,似乎服務器決定隨機清理PHP會話。我認爲當它遇到內存問題時會這樣做......這就是爲什麼它是隨機的並且與超時設置無關。當這種情況發生在你身上時,你是否可以將它與上次(或最後一次會話)登錄之間可能發生在Web服務器上的高負載相關聯?

無論如何,因爲它的所有JavaScript沒有理由不能使用PHP來輸出你的js,它將獲取數據並將數據設置爲localstorage。