2012-01-31 65 views
0

我有2條與同一主題相關的數據是國家代碼。PHP Cookies - 在一個cookie中存儲2條數據

如:澳大利亞和AU

是否有存儲2個數據在一個cookie的一個優選的方法是什麼? 或者更好地使用2個餅乾。

對不起,如果這是一個愚蠢的問題...只是對其他民族的意見感興趣。

THX

+0

一個問題,這是不是很* *與此相同,但可能對您有所幫助:http://stackoverflow.com/questions/139132 8/one-one-many-values-or-many-cookies-with-one-value – 2012-01-31 05:35:24

+2

當然,只需用一些分隔符(,|)分隔值,然後編寫函數來存儲和檢索。如果你存儲的是像AU這樣的密鑰,那爲什麼還要存儲澳大利亞?似乎再次似曾相識。 – 2012-01-31 05:36:51

回答

1

如果是我,我只想追加數據使用特定粘合起來,然後爆炸的字符串時,我想再次分隔值。

$cookeString = $country . '+' . $countryCode; 

list($country, $countryCode) = explode('+', $cookieString); 

但在所有誠實它沒有意義存儲的國家和國家代碼,只是存儲的國家代碼,並使用國家代碼作爲重點查找國家數據。

+0

良好的呼叫...將只存儲國家代碼和做一個數據庫調用...謝謝你...一旦我打勾了盒子...乾杯 – Adam 2012-01-31 05:39:41

+0

是的,沒有後顧之憂。祝你好運。 – 2012-01-31 06:39:30

0

爲什麼不使用JavaScript並創建一個json對象?

var cc = { 
australia: 'au', 
India : 'In' 
} 

您可以使用作爲cc.India

我知道,你問餅乾,但我需要存儲國家代碼,我也這樣。它的快速和容易。

0

你可以通過多種方式做到這一點,無論是多個cookie,也可以存儲一個像JSON這樣的對象,或者你可以簡單地放一個字符串,例如::和用戶php的eplode函數。總而言之,它是一種偏好,取決於你的行爲。如果您使用JSON對象,則可以通過使用json_encode和json_decode輕鬆地在對象和數組之間來回切換。再次是關於你的舒適程度在哪裏。總而言之,如果你真的想把它保存在一個單獨的cookie中,你最終還是要處理一系列數據。

舉例:通過腳本可以注射和斷供其他需要在運行之前

<?php 
//set the cookie 
$cookieData = json_encode(array("value_one", "value_two")); 
setcookie("MyCookie", $cookieData , time()+3600); 

//read the cookie 
$cookieInfo = json_decode($_COOKIE['MyCookie']); 
echo $cookieInfo[0]."<br>"; 
echo $cookieInfo[1]."<br>"; 

//or 
for($i = 0; $i < count($cookieInfo); $i++) 
{ 
    echo $cookieInfo[$i]."<br>"; 
} 

可以使這個概念相當大的,但要注意的cookies是裸露的易於操作的客戶端,從而淨化你的Cookie變量,通過cookie信息檢查數據庫以查看使用是否有效的示例。

要記住的另一件事是一些瀏覽器有一個cookie的大小,你最大的大小隻有4kb。

此外,您可以更熟悉使用JSON和數組的邏輯,如果您不熟悉它們,它們會非常棘手,但是一旦您開始使用它們並理解它們,您會發現它們是您最好的朋友。

0

您還可以在cookie名稱中使用數組表示法來設置數組cookie。

PHP代碼 -

// set the cookies 
setcookie("cookie[one]", "cookie1"); 
setcookie("cookie[two]", "cookie2"); 
setcookie("cookie[three]", "cookie3"); 

// after the page reloads, print them out 
if (isset($_COOKIE['cookie'])) { 
    foreach ($_COOKIE['cookie'] as $name => $value) { 
     $name = htmlspecialchars($name); 
     $value = htmlspecialchars($value); 
     echo "$name : $value <br />"; 
    } 
} 

輸出:

之一:COOKIE1
二:COOKIE2
三:cookie3