如何在cookies中设置逗号分隔值
当我尝试按以下方式设置cookie时,数值显示我在浏览器中的Cookie是这样的 cookie name - > recent和value 1%2c2 其中1和2是我的GET参数%2C我不知道这是什么我想要的,代替%2C如何在cookies中设置逗号分隔值
if(!empty($_GET['c']))
{
$c = $_GET['c'];
if(isset($_COOKIE['recent']))
{
$c=$_COOKIE['recent'].','.$c;
setcookie('recent',$c);
}
else
{
if(setcookie('recent',$c))
{
echo "yes";
}
else
{
echo "no";
}
}
}
echo $_COOKIE['recent'];
注意,cookie的值部分将自动 url编码,当你发送cookie,以及当它被接收时,它被自动解码并被分配给一个变量 ,其名称与相同的cookie名称。
你不需要使用'urlencode()'或'urldecode()'。正如你在答案中引用的那样,这会自动发生 – Phil 2012-02-21 05:06:59
顺便说一句,引用的脚本在我的虚拟主机上运行良好。 – Electronick 2012-02-21 06:14:17
也许这是一个错误,试试explode(',',$ _ COOKIE ['some_cookie']);它不适用于以逗号分隔的列表。但是,如果您先将cookie分配给$ some_cookie,然后再爆炸(',',$ some_cookie);有用。所以我认为你不能认为cookie总是被自动解码。 – 2013-05-30 09:36:51
什么是'$ C'和'$ D'的初始值?另外,你缺少一行分号#5 – Phil 2012-02-21 05:05:02