2011-05-23 70 views
1

我已閱讀,你可以爲每個域名20個cookie,每個文件4KB。PHP - 創建多個cookie文件

我目前設置cookie這樣的:

setcookie($cookieName, $cookieData , time()+60*60*24*30, "/"); 

如果名稱是「一」和數據是「111111111」 ......然後我設置另外一個cookie的「雙」數據「222222222」 ..然後我有以下數據

One 
111111111 
192.168.1.2/ 
1536 
673206400 
30159100 
1505317760 
30153065 
* 
Two 
2222222222 
192.168.1.2/ 
1536 
983206400 
30159100 
1820257760 
30153065 
* 

我如何去創造兩個不同的文件一個文件?我想通過限制我們的Intranet網站的Cookie只能有最大4kb。所有這些cookie文件將來自同一個網站...

+0

這是很難遵循什麼你正在嘗試做的,請擴大你的問題,所以我們可以幫助你。 – toneplex 2011-05-23 17:56:30

+0

這將是非常劈年,但你可以使用更多的cookie或多或少的特定子域(即同時使用* .domain.com和www.domain.com)。我也無法做出任何可行的保證。 – Nicole 2011-05-23 17:56:56

+0

另外,我覺得說的最重要的事情是強制性的「[不這樣做(http://meta.stackexchange.com/questions/8891/is-dont-do-it-a-valid-answer )「答案 - 堅持實質性數據,你不會有這個問題。這不是製作餅乾的原因。 – Nicole 2011-05-23 18:01:34

回答

2

您通常不希望爲此使用cookie,而是啓動一個session(使用cookie來標識用戶),並將信息存儲在服務器上側。

另外,如果會話生命週期太短,你的目的,創建具有更長的壽命了一個cookie,並存儲隨機密鑰在裏面。使用該密鑰在服務器端存儲和查找數據。

如果您需要必須本地存儲東西,有更多的客戶端存儲策略可以接受更多的數據。見

+0

這樣做的原因是,當有人在頁面上選擇特定標準時,我們希望在一段時間內保持這些選擇...並將數據存儲在數據庫中不幸的是不是我的選擇...和會話不會瀏覽器關閉後繼續存在。看起來本地存儲似乎是可能的;我會稍微回顧一下。 – adam 2011-05-23 17:58:27

+0

@adam您可以延長會話生存時間,也可以使用相同的機制但不使用會話:創建一個唯一的ID,將其存儲在cookie中,將該ID存儲在服務器端(在數據庫或文件中),如果瀏覽器發送帶有ID的cookie,查找數據。 – 2011-05-23 17:59:37

+0

@adam只是讓你知道的會議沒有什麼更多的事情要做瀏覽器比cookie做。會話是基於密鑰的存儲在您的服務器上。瀏覽器中設置爲在關閉時過期的cookie會保留正確會話的密鑰。因此,理論上可以通過將會話密鑰cookie存儲在不同的更長壽命的cookie中,然後將其移回原位來保留會話。 – Nicole 2011-05-23 18:00:57