将数组放入cookie中

时间:2013-09-19 10:59:54

标签: php

我正在尝试在我的网站中添加“最近查看的产品”功能。所以我想添加最近在cookie中观看的产品。当用户转到产品的详细信息页面时设置cookie。因此cookie设置代码在详细页面中。 我想要的是什么

setcookie('recentviews', $productid, time()+3600,'/')

我需要的是

recentviews1 =>1
recentviews2 =>5
recentviews3 =>3

OR

recentviews (
[0] => 1,
[1] => 5,
[2] => 3
)

我尝试了很多解决方案,比如在循环中设置cookie,但是如何知道已经设置了多少视图,所以我可以增加'recentviews'并设置新的cookie。

2 个答案:

答案 0 :(得分:1)

我可能会这样做(想象cookie内容包含obly safe数据):

# basic cookie structure:
$recent_views = array(
    # 'product_id' => 'value',
    32324 => 2,
    32455 => 23,
);


# to add a value in a request handler:
$recent_views = json_decode($_COOKIE['recentviews']);
$recent_views[ 32342 ] = 32;
setcookie('recentviews', json_encode( $recent_views ), $expi_time );

为简洁起见,遗漏检查错误。

Json真的有一个优势,你可以在浏览器中轻松解码javascript中的cookie,甚至可以在那里进行更改..(不是我会做的,但仍有可能)。

干杯 -

答案 1 :(得分:0)

您可以按照以下示例进行操作

$info[7][5]=1;
$info[8][5]=1;

序列化数据:

setcookie('cookie', serialize($info), time()+3600);

然后反序列化数据:

$data = unserialize($_COOKIE['cookie']);

在数据之后,$ info和$ data将具有相同的内容。