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

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

//--------------------开始------------------
functionuser_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_arras$key=>$val){
if(($key<$num)&&$val){
$pro.=$val.'|';
}
}
}else{
$pro=$prodq;
}
esetcookie($name,$pro,$time);
//esetcookie($name,'',0);
//print_r($_COOKIE);

}
functionuser_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_arras$k=>$v){
$jilu_idin.=(int)$v.',';
}
$jilu_idin=substr($jilu_idin,0,-1);//1,2,3
$sql=$empire->query("selectid,title,titlepic,titleurlfrom{$dbtbpre}ecms_{$tbname}whereidin({$jilu_idin})orderbyfind_in_set(id,'{$jilu_idin}')limit{$num}");//按idin里面的排序
while($jilu_r=$empire->fetch($sql)){
$titleurl=sys_ReturnBqTitleLink($jilu_r);
echo'<li><ahref="'.$titleurl.'">'.$jilu_r['title'].'</a></li>';//此处是修改样式需要图片自己加

}
}else{
echo'暂时浏览记录!';
}
}
//--------------------结束------------------

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

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

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

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


声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系邮箱:312334557@qq.com 我们将配合处理!

原文地址:《帝国CMS实现用户当前访问的历史记录(产品浏览记录)》发布于2022-04-09 19:35:29

相关推荐