2012-04-25 91 views
3

我對JavaScript和HTML5的本地存儲使用非常陌生。我目前在我的網站中使用PHP會話,並且希望移到localstorage,因爲此時我正在使用cookie來續訂會話。本地存儲會話

我明白,localstorage是一個客戶端功能,而不是像PHP那樣的服務器端,所以這使得我很難找出如何解決這個問題。

我想要做的就是設置localstorage值(我已經完成了),但我需要能夠將它們傳回到PHP中,以便將它們重新建立爲SESSION變量(我必須將其作爲我的站點一次有超過100頁和超過50個會話變量,所以我想簡單地使用本地存儲來重新生成會話變量而不是cookies。

如果有人能幫助我解決這個問題,我將非常感謝。你

+2

你確定你想要?本地存儲可以由客戶輕鬆更改。不要依賴客戶告訴你設置會話的內容。改用數據庫。 – 2012-04-25 04:52:20

+0

我同意@Truth--我沒有看到這個目的,或者你認爲通過這樣做可以獲得什麼,而不是讓客戶端篡改數據? – Repox 2012-04-25 05:28:28

回答

2

你將需要使用ajax或某種形式的方式來聯繫你的服務器來允許這種訪問本地存儲的唯一方法是使用客戶端腳本(javascript),這反過來可以d與它的東西。我不知道Ajax,但你應該看看。我也同意@Truth,本地存儲很不錯,特別是如果你不想使用cookie,但唯一的好處是用戶可以離線使用本地存儲。所以你們真的不應該這樣做。如果您使用cookies,您可以通過腳本訪問該信息。另一方面,您可以使用本地存儲替代在用戶瀏覽器上禁用Cookie。

+0

我有用戶抱怨說,「添加到主屏幕」web應用程序不會讓他們在我們的PHP.ini和cookie限制中保持設定時間的登錄狀態。通過網站它確實工作,但我的客戶堅持webapp遵循這些限制以及從谷歌搜索幾個小時,我發現很多在我的位置選擇使用localstorage ... @truth - 你說使用數據庫?我正在使用mysql在登錄時檢查用戶的憑據,我如何使用數據庫保持會話存活?它會在webapp場景中工作嗎?你有我對這個可能的解決方案很感興趣。請分享。 :) – devfunkd 2012-04-26 03:05:03

+0

我真的不知道爲什麼cookie設置不正確,但從我所知道的情況來看,您應該始終自己設置。至於如何保持與cookie和數據庫的會話,創建一個很好的散列隨機字符串,當用戶想要說登錄時,您可以將它放入數據庫和cookie中。如果它們匹配,那麼您就很好。使用本地存儲,同樣的事情,除了再次,您需要使用Ajax或其他形式的腳本與服務器通信,以便與服務器通信以查看用戶是否具有隨機散列字符串。注意可能的cookie/localstorage盜竊。 – Andy 2012-04-26 03:51:41

+0

我正在設置cookie,它的一切工作方式應該在瀏覽器中。只要你「添加到主屏幕」並通過這種方式加載,它會忽略cookie。從我在其他論壇上閱讀的內容以及這裏的常見問題和本地存儲是解決方法。隨機哈希會成爲PHP SESSION ID嗎? – devfunkd 2012-04-26 04:02:16