返回首页
当前位置: 主页 > 网络编程 > Php实例教程 >

php中如何实现网上商城用户历史浏览记录的代码

时间:2011-08-25 23:55来源:知行网www.zhixing123.cn 编辑:麦田守望者

这里我们拿网上商城源码ecshop中的相关代码来说明,怎么用cookie来实现用户商品历史浏览记录。

代码如下:
//如是COOKIE 里面不为空,则往里面增加一个商品ID
if (!empty($_COOKIE['SHOP']['history'])){

//取得COOKIE里面的值,并用逗号把它切割成一个数组
$history = explode(',', $_COOKIE['SHOP']['history']);
//在这个数组的开头插入当前正在浏览的商品ID
array_unshift($history, $id);
//去除数组里重复的值
$history = array_unique($history);
// $arr = array (1,2,3,1,3);
// $arr = array (1,1,2,3,3);
// $arr = array (1,2,3);
//当数组的长度大于5里循环执行里面的代码
while (count($history) > 5){
//将数组最后一个单元弹出,直到它的长度小于等于5为止
array_pop($history);
}
//把这个数组用逗号连成一个字符串写入COOKIE,并设置其过期时间为30天
setcookie('SHOP[history]', implode(',', $history), $cur_time + 3600 * 24 * 30);

}else{
//如果COOKIE里面为空,则把当前浏览的商品ID写入COOKIE ,这个只在第一次浏览该网站时发生
setcookie('SHOP[history]', $id, $cur_time + 3600 * 24 * 30);
}

//以上均为记录浏览的商品ID到COOKIE里,下面将讲到怎样用这样COOKIE里的数据

//取得COOKIE里的数据 ,格式为1,2,3,4 这样,当然也有可以为0
$history =isset ($_COOKIE['SHOP']['history']) ? $_COOKIE['SHOP']['history'] : 0;
//写SQL语句,用IN 来查询出这些ID的商品列表
$sql_history = "SELECT * FROM `goods` WHERE `goods_id` in ({$history})";
//执行SQL语句,返回数据列表
$goods_history = $db->getAll($sql_history);
if ($goods_history) {
$tpl->assign ('goods_history',$goods_history);
}

主要是通过操作数组来实现的,用到一些操作数组的函数。

------分隔线----------------------------
标签(Tag):php php实例教程 php源代码 php基础教程 php技巧
------分隔线----------------------------
推荐内容
猜你感兴趣