我正在尝试在我的网站中添加“最近查看的产品”功能。所以我想添加最近在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。
答案 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将具有相同的内容。