我的网站

帝国CMS实现用户当前访问的历史记录(产品浏览记录)

罗哥 帝国教程 2021-04-25 21:31:24 15 0

帝国如何实现调用用户的访问记录,今天跟着小编来看一看吧,效果图如下

 

一:在e/class/userfun.php中加:

//--------------------开始------------------
function user_SetCook($name, $id, $time = 0, $num = 10) { //cookie名称 ID 时间戳 数量
    if (!$id) {
        printerror2('不存在的记录', $_SERVER['HTTP_REFERER']);
    }
    $prodq = $id . '|';
    $projilu = getcvar($name);
    if ($projilu) {
        $prozuhe = $prodq . $projilu; //把新浏览的放在第一
        $pro_arr = explode('|', $prozuhe);
        $new_arr = array_merge(array_unique($pro_arr)); //去除重复,重新索引下标
        foreach ($new_arr as $key => $val) {
            if (($key < $num) && $val) {
                $pro.= $val . '|';
            }
        }
    } else {
        $pro = $prodq;
    }
    esetcookie($name, $pro, $time);
    //esetcookie($name,'',0);
    //print_r($_COOKIE);
    
}
function user_GetCook($name, $tbname, $num = 10) { //名称 数据表 数量
    global $empire, $dbtbpre;
    if (preg_match("/^[0-9\|]+$/", getcvar($name))) {
        $jilu_all = substr(getcvar($name), 0, -1); //1|2|3
        $jilu_arr = explode('|', $jilu_all);
        foreach ($jilu_arr as $k => $v) {
            $jilu_idin.= (int)$v . ',';
        }
        $jilu_idin = substr($jilu_idin, 0, -1); //1,2,3
        $sql = $empire->query("select id,title,titlepic,titleurl from {$dbtbpre}ecms_{$tbname} where id in ({$jilu_idin}) order by find_in_set(id,'{$jilu_idin}') limit {$num}"); //按id in 里面的排序
        while ($jilu_r = $empire->fetch($sql)) {
            $titleurl = sys_ReturnBqTitleLink($jilu_r);
            echo '<li><a href="' . $titleurl . '">' . $jilu_r['title'] . '</a></li>'; //此处是修改样式需要图片自己加
            
        }
    } else {
        echo '暂时浏览记录!';
    }
}
//--------------------结束------------------

二:在内容页模版最上面加:

<?=user_SetCook('cookiepro',$navinfor[id],0,10);//cookie名称可以自己定别重复 ID 时间戳 数量 ?>

三:在要显示的地方加一句:

<?=user_GetCook('cookiepro','shop',10);//名称 数据表名 数量 ?>