将数组存储在cookie中

时间:2011-09-14 08:10:12

标签: php arrays serialization cookies

我通过php serialize函数将数组转换为cookie

$PromoteProductArray = array("PromoteuserId"=>$PromoteuserId,
"PromoteProductId"=>$PromoteProductId,
"PromoteBrandId"=>$PromoteBrandId);

$Promotedcart[] = $PromoteProductArray;

setcookie("Promotedcart", serialize($Promotedcart), time()+604800,'/');

当创建cookie时,我正在使用unserialize php函数。

print_r(unserialize($_COOKIE['Promotedcart'])); 

它不起作用。

当我print_R($_COOKIE)时,它会告诉我价值。

3 个答案:

答案 0 :(得分:0)

以分号分隔的Cookie。带有数组的序列化字符串包含它们。也许这是一个问题。您可以使用base64来避免所有可能的转义问题。

答案 1 :(得分:0)

刚遇到我还需要使用此解决方案的情况。我在这里找到了答案:update cookie value in php

答案 2 :(得分:0)

您可以使用json_encodejson_decode函数来实现此目的。

$PromoteProductArray = array("PromoteuserId"=>$PromoteuserId,
"PromoteProductId"=>$PromoteProductId,
"PromoteBrandId"=>$PromoteBrandId);
$Promotedcart[] = $PromoteProductArray;
setcookie("Promotedcart", json_encode($Promotedcart), time()+604800,'/');
$result = json_decode($_COOKIE['Promotedcart'], true);
print_r($result);

试一试,这应该有用。