我的网站

帝国CMS实现历史记录(产品浏览记录)

罗哥 帝国教程 2021-05-31 15:49:40 18 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);//名称 数据表名 数量 ?>

更多评论
呆小萌 2021-05-31 18:30:03
其他评论
很好的功能啊,谢谢!
抱小熊 2021-05-31 21:10:26
其他评论
使用方便,谢谢!