使用php读取cookie

使用php读取cookie,php,cookies,Php,Cookies,我有一个这样的cookie,cookie是使用javascript设置的。现在我需要使用php读取cookies值 这就是cookie的存储方式。我可以看到mozila调试工具中的cokie值如下 ["as","asda","fdfdf"] - multiple values 有时它只能包含单个值[“as”]。 它似乎是一个json表示。我如何读取该值。我的cookie名称是“设置” 这样解决 将循环放入ul标签内,并将必要的li标签添加到print。通过这种方式,您可以动态创建列表项。在p

我有一个这样的cookie,cookie是使用javascript设置的。现在我需要使用php读取cookies值 这就是cookie的存储方式。我可以看到mozila调试工具中的cokie值如下

["as","asda","fdfdf"] - multiple values
有时它只能包含单个值
[“as”]。

它似乎是一个json表示。我如何读取该值。我的cookie名称是“设置”

这样解决


将循环放入
ul
标签内,并将必要的
li
标签添加到
print
。通过这种方式,您可以动态创建列表项。

在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>";
$my_array=array();
打印“
  • ”; foreach($\u COOKIE作为$COOKIE\u名称=>$COOKIE\u值){ $my\u数组[$cookie\u名称]=$cookie\u值; 打印“$”COOKIE[“$COOKIE\u name.”]=“$COOKIE\u value.”
  • ”; } 打印“
”;
这段代码将把所有cookie输出到一个数组中,并将其作为无序列表打印出来(


此外,在一个
$\u COOKIE
条目中可以有多个值的原因是,在“arrary”中有一个数组,从而形成多维数组。其他编程语言对这一点有更好的支持(例如,C++中的代码> int MyxAlx[x] [y] [Z];< /Cuff>创建一个3维int数组)。但是PHP对于数组的优点,可以很容易地创建关联数组(<代码> $MyOxLabe=数组([asdf ] ] =“AyValuy”,[B23 ] =“另一个值”,[另一个] =“另一个值”。);)。

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

在PHP中访问COOKIE可以使用$\u COOKIE superglobal完成。以下是针对您的示例:

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

var_dump($_COOKIE['settings']) // dump contents of settings cookie
转储$\u COOKIE的内容也可能很有用,这将显示设置了哪些COOKIE。可以使用以下代码执行此操作:

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

我已经用这种方法解决了这个问题

<?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>";
?>


使用相同的方法,我可以读取并存储为ul li。我的意思是,需要以liso显示vlaues,您需要循环浏览cookies并显示每个cookies的值?我的cookie名称是“设置”。需要读取此变量中的所有值我的cookie名称是“设置”。我只需要读取此cookie。而不是整个cookie然后使用
$my\u var=$\u cookie[“设置”]很高兴听到您找到了解决方案:)
var_dump($_COOKIE);
<?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>";
?>