-1

我正在尝试在我的网站中添加“最近查看的产品”功能。所以我想在 cookie 中添加最近观看的产品。当用户进入产品详情页面时设置cookie。所以cookie设置代码在详细页面。我正在尝试什么

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

我需要的是

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

或者

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

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

4

2 回答 2

1

我可能会做这样的事情(想象 cookie 内容包含 oblysafe数据):

# 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,甚至在那里进行更改..(不是我会做的,但仍然有可能)。

干杯 -

于 2013-09-19T11:18:17.480 回答
0

你可以按照下面的例子

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

序列化数据:

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

然后反序列化数据:

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

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

于 2013-09-19T11:15:38.907 回答