我们在做项目的时候,往往会一些模块是浏览记录列表,但我们又如何在PHP中实现浏览记录功能呢,现在我们通过cookies来实现

我们首先来分析一下思路

访问页面

获取存储浏览记录里面的商品数据列表

如果当前浏览的商品没有在历史记录里面则添加,有则更新

如果大概知道思路可以直接看代码

完整代码如下:

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);

}

?>

下面获取根据存储ID获取商品信息的mysql操作,可以根据自己的代码获取,可以使用原生态,也可以使用框架的查询数据库方法,自己可以适当修改一下

php使用cookie获取浏览记录,php使用cookie存库浏览记录详解相关推荐

  1. Snort里如何将读取的包记录存到指定的目录下(图文详解)

    不多说,直接上干货! 比如,在/root/log目录下. [root@datatest ~]# snort -dve -l /root/log 需要注意: 1) /log目录需要你自己建立,并修改权限 ...

  2. python流获取控制台_对Python捕获控制台输出流的方法详解

    有时候我们的代码里可能要调用控制台命令,比如我想用Python写一个批量编译 .java 文件的脚本,用到如下代码 常规用法 os.system import os,traceback try: p ...

  3. 读Java并发编程实践记录_原子性_锁_同步容器详解_任务执行

    原子性: 单独的,不可分割的操作 不要使用过期状态值来决策当下的状态, 一定要先检查再执行(不检查, 将引发数据修改,丢失) 避免延迟初始化(懒加载: 先查看对象 == null, 然后new), 有 ...

  4. Twain的学习记录和基于Qt的相关开源项目详解

    Twain学习记录和基于Qt的开源项目详解 twpp-qml 适用于 C++11 及更高版本的便携式.仅标头 TWAIN 框架. 原项目作者使用Qtwidget基于Twain静态传输一张图片 我基于h ...

  5. java 获得当月天数_java中 如何获取当月的天数、指定日期的月份天数详解

    代码实现如下:import java.util.Calendar; public class GetDay { public static void main(String[] args) { int ...

  6. cesium获取模型高度_180套经典夹具设计方案(附详解+模型),原来夹具设计这么简单!...

    180套夹具设计方案获取请见文章末尾图片 实际生产当中,很多产品的加工过程都需要有夹具辅助来完成,一套既经济实用又安全可靠的夹具不仅可以大大提高产品的生产质量还可以提高生产效率,工人操作起来也非常舒适 ...

  7. c调用python脚本如何获取结果_使用C++调用Python代码的方法详解

    一.配置python环境问题 1.首先安装Python(版本无所谓),安装的时候选的添加python路径到环境变量中 安装之后的文件夹如下所示: 2.在VS中配置环境和库 右击项目->属性-&g ...

  8. 【ArcGIS风暴】ArcGIS10.6获取栅格影像边界范围的三种方法案例详解

    基于ArcGIS平台有多种办法可以提取栅格影像边界,常见的方法有3种: 栅格范围(Raster Domain) 栅格转面(Raster to Polygon) 创建轮廓(BuildFootprints ...

  9. java 获取oracle表结构_Java导出oracle表结构实例详解

    Java导出oracle表结构实例详解 发布于 2020-7-20| 复制链接 摘记:  Java导出oracle表结构实例详解最近用到的,因为plsql是收费的,不让用,找了很多方法终于发现了这个. ...

  10. android activity获取dialog对象,Android开发笔记之:Dialog的使用详解

    Dialog是任何系统都必须有的一个控件,作为辅助窗口,用于显示一些消息,或请求用户采取一引起操作等. 在Android中也不例外,基本使用可能参看文档. 使用时的注意事项1. BACK键能取消掉对话 ...

最新文章

  1. 大型分布式网站架构技术总结
  2. 【项目管理】敏捷团队协议示例
  3. 需做勿畏拖 效能更轻松
  4. 二叉树层级遍历_二叉树中的层级顺序遍历
  5. 以上是对图像的椒盐噪声处理,在p_temp[j*wide+i]=0;这句程序中为什么要乘以wide,求解,谢谢!
  6. 一个计算机软件学生的求职简历,计算机学生求职的个人简历模板
  7. 手机python30编程教程入门_Python新手入门教程_在手机上就能学习编程的软件
  8. 2020年如何利用外链提升网站排名和权重?
  9. 使用svn向指定文件夹下载数据
  10. 基于 arduino 的两轮自行车
  11. 微型计算机键盘连接在,树莓派推出Pi 400型微型计算机 主机藏在键盘里连接显示器即可使用...
  12. 【深度学习】常见优化算法
  13. Google Chrome浏览器的回退功能快捷键
  14. Git 必知必会《上》
  15. WIN10下通过Anaconda安装TensorFlow-GPU版本和keras
  16. 基于springboot的药店进销存管理系统#毕业设计
  17. 火绒剑 HRSword 5.0.1.1
  18. el-date-picker 禁止时间xaun ze
  19. 算法与数据结构(三) 时间复杂度分析 [例题]
  20. 用 Astropy 拟合数据(一)

热门文章

  1. torchdiffeq中odeint函数的输入输出参数分析
  2. 使用MongoDB Compass将JSON数据文件导入MongDB
  3. 十三号星期五题解 【模拟】
  4. ucfirst.php
  5. JTT808、JTT1078、TJSATL主动安全踩坑记录
  6. linux主机名hostname老是被更改为broad原理分析和恢复
  7. JPA @Query动态添加参数查询(超级详细,附代码)
  8. CSS 幻术 | 抗锯齿
  9. 深度学习的黑魔法防御术:恶意样本(Adversarial Example) 的防御策略综述
  10. Java url中文转码