在电子商务的网站中,经常要记录用户的浏览路径,以判断用户到底对哪些商品感兴趣,或者哪些商品之间存在关联。
下面将使用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/>";//输出浏览历史 } ?>