php中如何实现网上商城用户历史浏览记录的代码
/如是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);
}
主要是通过操作数组来实现的,用到一些操作数组的函数。
php中如何实现网上商城用户历史浏览记录的代码的更多相关文章
- JS制作一个通用的商城版历史浏览记录
正在开发一个b2c的国外商城,昨天做了一个历史浏览记录发出来跟大家分享一下. JS: //cookie相关函数 function getCookieVal(offset) { var endst ...
- PHP Cookei记录用户历史浏览信息的代码
[基础]Cookie常用方法:$_COOKIE['RecordLuHuiDUDU'] 得到Cookiesetcookie('RecordLuHuiDUDU',",time()-3600*24 ...
- 使用Cookie实现用户商品历史浏览记录
该功能分为四个模块: 1. 获取所有商品并以链接的形式显示 out.write("网站商品: <br/>"); Map<String, Book> book ...
- Django之使用redis缓存session,历史浏览记录,首页数据实现性能优化
Redis缓存session 配置Django缓存数据到redis中 # diango的缓存配置 CACHES = { "default": { "BACKEND&quo ...
- Redis添加历史浏览记录
参考资料 http://redisdoc.com/index.html http://redis-py.readthedocs.io/en/latest/#indices-and-tables 1.什 ...
- js记录用户行为浏览记录和停留时间(转)
演示地址:http://weber.pub/demo/160902/test.html 测试源码下载:http://pan.baidu.com/s/1nvPKbSP 密码:r147 解决问题所使用的知 ...
- position:搜索框显示历史浏览记录
absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位. 元素的位置通过 "left", "top", "righ ...
- destoon系统开发-最新利用浏览器的cookie 做历史浏览记录
注意: 代码 放在要显示的为 (一般放在详情页),注意本教程不入库,直接利用浏览器的 cookie 缓存判断 <!--历史浏览记录 S--> <div class=&quo ...
- SSH网上商城---用户激活
在前面的博客中,小编主要结合SSH网上商城这个项目,简单的介绍了如何实现邮件发送的这个功能,邮件发送了,接下来就是激活了,为什么呢?现在大多网站都要通过对账号进行激活,然后才能注册成功,这是防止恶性注 ...
随机推荐
- 关于ArrayList线程安全解决方案
一:使用synchronized关键字 二:使用Collections.synchronizedList();使用方法如下: 假如你创建的代码如下:List<Map<String,Obje ...
- 如何设置textarea光标默认为第一行第一个字符
判断文本区是否有内容,如果没有那么光标肯定是在第一行第一个为止的,记住,空格回车也算是有内容在的,也会影响光标的位置
- phonegap与微信开放平台接口整合
在开发phonegap应用的过程中有个需求需要将应用的消息推送到微信上.于是我自己写了一个微信的phonegap插件,并成功整合进了应用. 插件地址:https://github.com/ajccom ...
- MAC 下安装PIL
1. 安装使用 pip install pil 结果报如下错误 Collecting PIL Could not find a version that satisfies the requireme ...
- poj 2828 Buy Tickets【线段树单点更新】【逆序输入】
Buy Tickets Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 16273 Accepted: 8098 Desc ...
- wDatePicker使用说明文档
版权声明:本文为博主原创文章,未经博主允许不得转载. http://www.my97.net/dp/demo/ 4.5更新的内容 [重构]对WdatePicker.js做了较大规模的调整 [改进]自动 ...
- iOS新建项目基本配置
项目整体同xib+代码的方式 1.调整项目文件结构 2.将资源图片导入工程 General->LaunchScreen 修改 3.App名称修改 info->Bundle name 4.删 ...
- Stackdump: 一个可以离线看stackoverflow的工具
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:Stackdump: 一个可以离线看stackoverflow的工具.
- Gprinter Android SDK V2.1 使用说明
下载:http://download.csdn.net/download/abc564643122/8872249
- chrome 全屏无法退出
起因:chrome 按F11 全屏后,再按F11 死活无法退出全屏,关掉后,再打开chrome,自动全屏,F11无法退出全屏 系统:centos 6.3 解决:找到 chrome的用户数据存储目录,( ...