2014-11-22 56 views
1

我有一個這樣的cookie,並且cookie是使用javascript.Now設置的,我需要使用php 來讀取cookie值。這就是cookie的存儲方式。我能夠從mozila debugg工具中看到cokie值因爲這使用php讀取cookie

["as","asda","fdfdf"] - multiple values 

有時只能包含單個值["as"].

看來它是一個JSON representation.How我可以讀出value.My cookie的名稱是「設置」

解決這樣 https://stackoverflow.com/a/27075868/2505607

回答

0
$cookie_name = "user"; 
if(!isset($_COOKIE[$cookie_name])) { 
    echo "Cookie named '" . $cookie_name . "' does not exist!"; 
} else { 
    echo "Cookie is named: " . $cookie_name . "<br>Value is: " . $_COOKIE[$cookie_name]; 
} 

嘗試了這一點。它同樣的方式使用$_SESSION

更新:

要循環每次可以使用類似的東西這個cookie:

foreach ($_COOKIE as $cookie_name => $cookie_value) { 
    print "$cookie_name = $cookie_value<br>"; 
} 

把你ul標籤內循環,並添加必要的li標記爲print。這樣您就可以動態創建您的列表項目。

+0

通過使用同樣的方法,我可以讀取和存儲它作爲UL li.I意味着,需要顯示在李 – aniltc 2014-11-22 08:23:10

+0

的vlaues所以你通過cookies和需要循環顯示每個人的價值? – wayzz 2014-11-22 08:26:45

+0

它不起作用。無法使用上述循環讀取cookie – aniltc 2014-11-22 08:37:49

0

在php中,您可以像使用其他變量一樣使用cookie。或者至少是其他超全球變量。您讀寫它們是這樣的:

$my_var = $_COOKIE["cookie_name"];  
$_COOKIE["cookie_name"] = $some_value;  

要遍歷所有的人,你可以使用foreach循環:

$my_array = array(); 
print "<ul><li>"; 
foreach($_COOKIE as $cookie_name => $cookie_value) { 
$my_array[$cookie_name] = $cookie_value; 
print "$_COOKIE[" . $cookie_name . "] = " . $cookie_value . "</li><li>"; 
} 
print "</li></ul>"; 

這段代碼將輸出所有的cookie到一個數組,打印出來作爲一個無序列表(<ul>)。

此外,在一個$_COOKIE條目中可以有多個值的原因是,您在「arrary」中有一個數組,導致產生多維數組。其他編程語言對此有更好的支持(例如在C++ int my_array[x][y][z];中創建了一個3維int數組。),但是PHP關於數組的優點是,您可以非常容易地創建關聯數組($my_array = array(["asdf"] => "a_value", ["b23"] => "another_value", ["another"] => "another_value");)。

+0

我的cookie名稱是「settings」。我只需要從此cookie中讀取。不要整個餅乾 – aniltc 2014-11-22 08:51:24

+0

然後使用'$ my_var = $ _COOKIE [「設置」];' – szentsas 2014-11-22 09:17:00

0

要診斷問題,我們還需要查看設置cookie的Javascript以確保沒有錯誤。

在PHP中訪問cookie可以使用$ _COOKIE superglobal完成。具體到你例子如下:

isset($_COOKIE['settings']) // returns true if cookie with name 'settings' is set 

var_dump($_COOKIE['settings']) // dump contents of settings cookie 

這也可能是傾倒的$ _COOKIE的內容,這將說明Cookie設置什麼是有用的。你可以用下面的代碼做到這一點:

var_dump($_COOKIE); 

請發佈相關的JS設置cookie,我會更新我的答案。問題是你如何設置cookie也決定了你如何訪問它。例如,有些選項允許您在設置時指定cookie的域和路徑 - 這可能會阻止您在PHP腳本中訪問該腳本,即腳本與設置cookie的JS在不同的頁面上。

+0

請檢查下面的代碼。如何解決 – aniltc 2014-11-22 09:24:06

+0

很高興聽到你找到解決方案:) – 2014-11-22 09:28:53

1

我已經解決了這樣

<?php 

$Cookie_name = $_COOKIE['settings']; 
$decode = json_decode($Cookie_name); 
$cnt = count($decode); 
echo "<ul>"; 
for($i=0;$i<$cnt;$i++) { 

    echo "<li>".$decode[$i]."</li>"; 

} 
echo "</ul>"; 
?>