使用php读取cookie

时间:2014-11-22 08:17:27

标签: php cookies

我有一个像这样的cookie,并使用javascript设置cookie。现在我需要使用php读取cookie值 这就是cookie存储的方式。我能够看到来自mozila debugg工具的cokie值

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

有时它只能包含单个值["as"].

它似乎是一个json表示。我怎么能读取该值。我的cookie名称是"设置"

解决了这个问题 的 https://stackoverflow.com/a/27075868/2505607

4 个答案:

答案 0 :(得分: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>";
?>

答案 1 :(得分: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。这样您就可以动态创建列表项。

答案 2 :(得分: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”中有一个数组,从而产生一个多维数组。其他programmind语言对此有更好的支持(例如在C ++中int my_array[x][y][z];创建一个3维int数组。),但php有关数组的优点,你可以很容易地创建关联数组($my_array = array(["asdf"] => "a_value", ["b23"] => "another_value", ["another"] => "another_value");

答案 3 :(得分:0)

要诊断问题,我们还需要查看设置cookie的Javascript,以确保没有错误。

使用$ _COOKIE超全局可以在PHP中访问cookie。您特定的示例如下:

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);

请发布设置cookie的相关JS,我会更新我的答案。问题是您如何设置cookie也决定了您如何访问它。例如,有一些选项允许您在设置时指定cookie的域和路径 - 这可能会阻止您在PHP脚本中访问它,即如果脚本位于与设置cookie的JS不同的页面上

相关问题