当前位置: 首页 > 编程日记 > 正文

cookie记录用户的浏览商品的路径

在电子商务的网站中,经常要记录用户的浏览路径,以判断用户到底对哪些商品感兴趣,或者哪些商品之间存在关联。

下面将使用cookie记录用户的浏览过的历史页面。该网站将每个页面的标题保存在该页面的$TITLE 变量中,用户每访问一次,就将新访问的标题添加到COOKie变量$_COOKIE["history"]值中。

随着访问页面的次数增多,该cookie变量中保存的含有页面标题的字符串会越来越长。将cookie变量切分成数组。然后输出数组元素的值就可以输出用户最近访问的页面的标题了

<?php
/** * @Authors peng--jun * @Email   1098325951@qq.com* @Date    2015-11-07 11:16:05* @Link    http://www.cnblogs.com/xs-yqz/* @version $Id$==========================================*/header("Content-type: text/html; charset=UTF-8"); ob_start();//打开缓冲区,以便在有输出后还能设置Cookie$TITLE = "西游记";//商品页有很多,其他商品页的title是水浒传、西游记等
?>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title><?= $TITLE?></title>
</head>
<body><h3><?= $TITLE ?>商品界面</h3><p>同类商品:<a href="hlm.php">红楼梦</a><a href="shz.php">水浒传</a><a href="sg.php">三国演义</a></p><?php require("4.22.php"); ?>
</body>
</html>
sg.php页面代码
<?php
/** * @Authors peng--jun * @Email   1098325951@qq.com* @Date    2015-11-07 11:23:26* @Link    http://www.cnblogs.com/xs-yqz/* @version $Id$==========================================*/header("Content-type: text/html; charset=UTF-8"); ob_start();//打开缓冲区,以便在有输出后还能设置Cookie$TITLE = "三国演义";//商品页有很多,其他商品页的title是水浒传、西游记等
?>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title><?= $TITLE ?></title>
</head>
<body><h3><?= $TITLE ?>商品界面</h3><p>同类商品:<a href="hlm.php">红楼梦</a><a href="shz.php">水浒传</a><a href="sg.php">三国演义</a></p><?php include("4.22.php") ?>
</body>
</html>

其余的 shz.php 和 hlm.php 的页面内容一致,只是$TITLE的变量值变了,其余没变。

4.22.php

<?php
/** * @Authors peng--jun * @Email   1098325951@qq.com* @Date    2015-11-07 11:25:06* @Link    http://www.cnblogs.com/xs-yqz/* @version $Id$==========================================*/header("Content-type: text/html; charset=UTF-8"); $history = $_COOKIE["history"];//获取记录浏览历史的Cookiesif ($history == "") {$path = $TITLE;//将当前页的标题保存到path变量中}else{$path = $TITLE."/".$history;//将当前页的标题加到浏览历史的最前面,用"/"符号分割
 }//将$path保存到Cookie变量中,设置过期时间为1天setcookie("history",$path,time()+3600*1);$arrPath = explode("/", $path);//将$path 分割成一个数组explode()函数foreach ($arrPath as $key => $value) {if ($key>9) break;//只输出最近的10条数据  foreach用于遍历数组echo ($key+1).".".$value."<br/>";//输出浏览历史
 }
?>

转载于:https://www.cnblogs.com/xs-yqz/p/4944849.html

相关文章:

如何快速写一个违背双亲委托机制的classloader

很多情况下&#xff0c;不得以必须写个classloader来满足需求。例如你一个工程里你想用相同的数据库的多个版本&#xff0c;自己制定了一个jar包目录&#xff0c;没有classloader管理等等。如果是一个遵循java已经规定好的机制的classloader&#xff08;双亲委托以及加载依赖类…

让我们谈谈RAID

转自&#xff1a;http://soft.zdnet.com.cn/techupdate/2004/0330/397707.shtml 更新时间: 2004-03-30 17:14:00 作者&#xff1a; 赵效民 感觉写的很好就转来了。 RAID的种类 RAID的英文全称为Redundant Array of Inexpensive&#xff08;或Independent&#xff09; Disks&…

Ampere 携手 Rigetti 开发混合量子经典计算机

该合作旨在为价值 160 亿美元的机器学习市场提供服务&#xff0c;赋能机器学习应用的发展双方将把 Ampere Altra Max 处理器和 Rigetti 量子处理单元进行优化结合&#xff0c;为机器学习提供整合的云平台 2022 年 2 月 21 日&#xff0c;安晟培半导体科技有限公司&#xff08;A…

[C++] NULL VS nullptr

NULL VS nullptr 转载于:https://www.cnblogs.com/tianhangzhang/p/4945623.html

swift 的defer使得资源的分配和释放代码可以放到一起

只是一种语法和逻辑上的优化

烂泥:haproxy学习之手机规则匹配

2019独角兽企业重金招聘Python工程师标准>>> 本文由ilanniweb提供友情赞助&#xff0c;首发于烂泥行天下 想要获得更多的文章&#xff0c;可以关注我的微信ilanniweb。 今天我们来介绍下有关haproxy匹配手机的一些规则配置。 一、业务需要 现在根据业务的实际需要&a…

jQuery日期选择器插件date-input

官网&#xff1a;http://jonathanleighton.com/projects/date-input/下载&#xff1a; http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js http://github.com/jonleighton/date_input/raw/master/jquery.date_input.js http://github.com/jonleighton/date_inp…

厉害了,用Python绘制动态可视化图表,并保存成gif格式

作者 | 俊欣来源 | 关于数据分析与可视化最近有粉丝问道说“是不是可以将这些动态的可视化图表保存成gif图”&#xff0c;小编立马就回复了说后面会写一篇相关的文章来介绍如何进行保存gif格式的文件。那么我们就开始进入主题&#xff0c;来谈一下Python当中的gif模块。安装相关…

facade-门面模式

解决问题 客户端调用逻辑与业务代码有效隔离&#xff0c;使得客户端调用只和Facade进行交互&#xff0c;内部的调用逻辑由Facade进行实现。此模式也可以和接口化编程结合&#xff0c;进一步降低客户端与业务逻辑的耦合 应用场景 它主要应用在代码结构的设计&#xff0c;合理组织…

淘宝李晓拴:淘宝网PHP电子商务应用

源自&#xff1a;http://tech.qq.com/a/20110512/000298.htm 大家好&#xff0c;大家知道淘宝搜索是一个典型PHP架构。在座同学不知道有多少人使用过淘宝搜索可以举手示意一下&#xff1f;在开始这个话题之前我们先谈一下Polyglot&#xff0c;多语言混合编程&#xff0c;淘宝有…

玩爬虫不会登陆?这个工具拿走不谢!

作者 | 周萝卜来源 | 萝卜大杂烩在日常学习当中&#xff0c;我们或多或少都会到网上抓取一些数据&#xff0c;比如豆瓣、微博等等&#xff0c;但是这些网站在非登录的情况只能拿到部分数据&#xff0c;有很多数据都是需要登陆之后才可以获取的&#xff0c;那么模拟登陆就成为了…

Oracle分页

先看以下两条语句的执行结果&#xff1a; 语句一&#xff1a;select rownum,empno,sal from emp order by empno; ROWNUM EMPNO SAL ---------- ---------- ---------- 1 7369 800 2 7499 1600 3 7521 …

Scala类型系统——高级类类型(higher-kinded types)

高级类类型就是使用其他类型构造成为一个新的类型&#xff0c;因此也称为 类型构造器(type constructors)。它的语法和高阶函数(higher-order functions)相似&#xff0c;高阶函数就是将其它函数作为参数的函数&#xff1b;高级类类型则是将构造类类型作为参数类型。一个高级类…

android休眠唤醒驱动流程分析【转】

转自&#xff1a;http://blog.csdn.net/hanmengaidudu/article/details/11777501标准linux休眠过程&#xff1a;l power management notifiers are executed with PM_SUSPEND_PREPAREl tasks are frozenl target system sleep state is announced to the …

PHP使用curl_multi_add_handle并行处理

http://www.php.net/manual/zh/function.curl-multi-add-handle.php<?php// 创建一对cURL资源$ch1 curl_init();$ch2 curl_init();// 设置URL和相应的选项curl_setopt($ch1, CURLOPT_URL, "http://www.baidu.com/");curl_setopt($ch1, CURLOPT_HEADER, 0);curl…

斯坦福团队是如何构建更好用的聊天 AI 呢?

作者&#xff1a;Standford AI译者&#xff1a;Yang来源&#xff1a;数据实战派2019 年&#xff0c;凭借着 Chirpy Cardinal 机器人&#xff0c;斯坦福首次在 Alexa Prize Socialbot Grand Challenge 3 中赢得了第二名。本文将进一步揭示 Chirpy Cardinal 开发细节&#xff0c;…

使用Linux进行缓冲区溢出实验的配置记录

在基础的软件安全实验中&#xff0c;缓冲区溢出是一个基础而又经典的问题。最基本的缓冲区溢出即通过合理的构造输入数据&#xff0c;使得输入数据量超过原始缓冲区的大小&#xff0c;从而覆盖数据输入缓冲区之外的数据&#xff0c;达到诸如修改函数返回地址等目的。但随着操作…

Javascript导出Excel的方法

<SCRIPT LANGUAGE"javascript"> function method1(tableid) {//整个表格拷贝到EXCEL中 var curTbl document.getElementById(tableid); var oXL new ActiveXObject("Excel.Application"); //创建AX对象excel var oWB oXL.Workbooks.Add(); //获取…

Top 15 不起眼却有大作用的 .NET功能集

目录1. ObsoleteAttribute2. 设置默认值属性&#xff1a; DefaultValueAttribute3. DebuggerBrowsableAttribute4. &#xff1f;&#xff1f;运算符5. Curry 及 Partial 方法6. WeakReference7. Lazy8. BigInteger9. 非官方关键字&#xff1a;__arglist __reftype __makeref __…

M2 芯片终于要来了?全线换新,性能远超M1 Max

‍‍不知不觉日历已翻至 2 月下旬&#xff0c;掐指一算&#xff0c;距离苹果一年一度春季新品发布会的召开似乎已越来越近。根据年初统计的 2022 年苹果新品预测&#xff0c;预计今年的苹果“小春晚”将在 Mac 方面有大动作。 那么&#xff0c;苹果将如何“动作”&#xff0c;又…

Python抓取新浪新闻数据(三)

非同步载入一般在XHR下查找&#xff0c;但是没有发现XHR下有相关内容。 转载于:https://blog.51cto.com/2290153/2126862

不畏浮云遮望眼--离散数学和组合数学

不畏浮云遮望眼&#xff0c;基础很重要&#xff01;离散数学是算法和数据结构的基础&#xff0c;而算法和数据结构又是什么的基础&#xff1f;不解释了。1.《离散数学及其应用》作者: (美)Kenneth H. R出版社: 机械工业出版社出版年: 2007-6页数: 804定价: 79.00元丛书: 计算机…

上班摸鱼,刚刚发现在 VScode 中可玩魂斗罗,超级玛丽

今天&#xff0c;再给大家介绍一款更加有意思的vscode插件——“小霸王”。 GitHub传送门&#xff1a;https://github.com/gamedilong/anes-repository 安装方式&#xff1a; 对于插件的安装,可以按照上图的操作流程。 1.打开VScode&#xff0c;然后点击拓展。 2.在输入框中&am…

JSP 三 :九大隐式对象

2019独角兽企业重金招聘Python工程师标准>>> ###细节 每个JSP页面在第一次被访问时&#xff0c;web容器都会把请求交给JSP引擎&#xff08;即一个Java程序&#xff09;去处理。JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet),然后按照servlet的调用方…

阿里90后工程师利用ARM硬件特性开启安卓8终端“上帝模式”

文/图 阿里安全潘多拉实验室 团控 编者按&#xff1a;团控&#xff0c;阿里安全潘多拉实验室研究人员&#xff0c;该实验室主要聚焦于移动安全领域&#xff0c;包括对iOS和Android系统安全的攻击和防御技术研究。团控的主攻方向为安卓系统级漏洞的攻防研究。在今年3月的BlackHa…

c语言模拟实现oc引用计数

#include<stdio.h> #include<stdlib.h> //在c中引入 引用计数机制 // 要解决的问题: 1,指向某块动态内存的指针有几个? // 应该让这块动态内存记录指针的数量 // 所以开辟的动态内存大小应该取多大&#xff1f; // …

ATT与Intel汇编语言的比较

转自 陈莉君 一书《深入分析Linux内核源码》 http://www.kerneltravel.net/kernel-book/第二章%20Linux运行的硬件基础/2.6.1.htm2.6.1 AT&T与Intel汇编语言的比较我们知道&#xff0c;Linux是Unix家族的一员&#xff0c;尽管Linux的历史不长&#xff0c;但与其相关的很多事…

最近,又发现了 Pandas 中三个好用的函数

作者 | luanhz来源 | 小数志导读近日&#xff0c;在github中查看一些他人提交的代码时&#xff0c;发现了Pandas中这三个函数&#xff0c;在特定场景中着实好用&#xff0c;遂成此文以作分享。程序的基本结构大体包含三种&#xff0c;即顺序结构、分支结构和循环结构&#xff0…

Java Web的Maven项目中Properties文件的使用(2)

为什么80%的码农都做不了架构师&#xff1f;>>> 背景 Java Web中常用一些Properties文件进行部署配置&#xff0c;其中如果在里面配置OS的路径&#xff0c;需要跨平台&#xff0c;主要就是考虑win系统的路径是“\”&#xff0c;而Linux的路径是“&#xff0f;”。 …

TCP/IP 计算机网络协议

2019独角兽企业重金招聘Python工程师标准>>> 应用层: (典型设备:应用程序&#xff0c;如FTP&#xff0c;SMTP &#xff0c;HTTP) DHCP(Dynamic Host Configuration Protocol)动态主机分配协议&#xff0c;使用 UDP 协议工作&#xff0c;主要有两个用途&#xff1a;给…