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"];//获取记录浏览历史的Cookies
 if ($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