Heim  >  Artikel  >  Backend-Entwicklung  >  php使用cookie存库浏览记录详解

php使用cookie存库浏览记录详解

高洛峰
高洛峰Original
2016-10-20 15:19:351482Durchsuche

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


我们首先来分析一下思路

访问页面

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

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

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


完整代码如下:

<?php
 
//如是COOKIE 里面不为空,则往里面增加一个商品ID
if (!empty($_COOKIE[&#39;SHOP&#39;][&#39;history&#39;])){
     
    //取得COOKIE里面的值,并用逗号把它切割成一个数组
    $history = explode(&#39;,&#39;, $_COOKIE[&#39;SHOP&#39;][&#39;history&#39;]);
     
    //在这个数组的开头插入当前正在浏览的商品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(&#39;SHOP[history]&#39;, implode(&#39;,&#39;, $history), $cur_time + 3600 * 24 * 30);
 
}else{
    //如果COOKIE里面为空,则把当前浏览的商品ID写入COOKIE ,这个只在第一次浏览该网站时发生
    setcookie(&#39;SHOP[history]&#39;, $id, $cur_time + 3600 * 24 * 30);
}
 
//以上均为记录浏览的商品ID到COOKIE里,下面将讲到怎样用这样COOKIE里的数据
 
//取得COOKIE里的数据 ,格式为1,2,3,4 这样,当然也有可以为0
$history =isset ($_COOKIE[&#39;SHOP&#39;][&#39;history&#39;]) ? $_COOKIE[&#39;SHOP&#39;][&#39;history&#39;] : 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 (&#39;goods_history&#39;,$goods_history);
}
?>

   

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


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP环境配置Nächster Artikel:PHP源码加密方法