下载鸥 > 网站下载 > 开发教程 > 帝国CMS

帝国cms怎样记录会员浏览信息历史记录?

366 2021-03-28 23:47:12

收藏
帝国cms论坛早已有了以cookie形式保存浏览量历史记录在客户端的插件,但这样不是很安全,而我们通过数据库记录的数据,对于客户的隐私保护明显要好的多,以下就是帝国cms数据库保存模式记录会员的浏览记录信息的实现过程。

1、首先新建一张表
帝国后台--系统--备份数据--执行sql:
注意:这里是gb2312的编码,大多数用户的帝国cms是utf-8版本,请根据自己的实际情况决定编码格式。
CREATE TABLE `3`.`phome_ly_recorduser` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT ,
`userid` INT( 10 ) NOT NULL ,
`text` TEXT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;

2、在需要记录信息的内容模板中插入以下代码:(注意-需要先引入jquery.js 下面代码要在jquery插件后面在插入)
<script>
//栏目ID
var classid = [!--classid--];
//信息ID
var id = [!--id--];
//表名称<script>
//栏目ID
var classid = [!--classid--];
//信息ID
var id = [!--id--];
//表名称
var tbname = '<?=$class_r[$navinfor['classid']]['tbname']?>';
//登陆用户
var userid = <?=$lguserid=intval(getcvar('mluserid'))?>;
$(function(){
    if(userid)
    {
    $.post(
        '/ly/recorduser/index.php',
        {
            userid:userid,
            classid:classid,
            id:id,
            tbname:tbname
        },"html");
    }
})
</script>

3、处理函数:

可以自己复制代码,也可以直接下载压缩包
文件路径 根目录/ly/recorduser/index.php
<?php
require('../../e/class/connect.php');        //引入数据库配置文件和公共函数文件
require('../../e/class/db_sql.php');        //引入数据库操作文件
include('../../e/class/functions.php');

$link=db_connect();                //连接MYSQL
$empire=new mysqlquery();        //声明数据库操作类
        
if(!$_POST['userid'])
{
        exit;        
}

//查询是否已有userid
if($user=$empire->fetch1("select * from {$dbtbpre}ly_recorduser where userid = {$_POST['userid']}"))
{
        //格式化字符串
        $text="{$_POST['tbname']}@@@{$_POST['classid']}@@@{$_POST['id']}";        
        //信息分隔符
        $dot='';
        //判断是否已有记录数
        if(strstr($user['text'],$text))
        {
            //已有记录
            die;        
        }
        if($user['text']!='')
        {
            $dot='::::::';
        }
        
        //大于10调记录数去掉最后的一条信息
        if($user['text'] && substr_count($user['text'],$dot)>=9)
        {
            //去除最后一条记录数
            $arr=explode('::::::',$user['text']);
            $arrtext='';
            $dot1=$dot;
            for($i=0;$i<count($arr);$i++)
            {
                if($i!=(count($arr)-1))
                {
                    if($i==(count($arr)-2))
                    {
                        $dot1='';        
                    }
                    $arrtext.=$arr[$i].$dot1;
                }
            }
            $text.=$dot.$arrtext;
        }
        else
        {
            $text.=$dot.$user['text'];
        }
        //不存在的记录数、更新表
        $empire->query("update {$dbtbpre}ly_recorduser set `text` = '{$text}' where userid = {$_POST['userid']}");
}
//没有记录数插入一条
else
{
    $text="{$_POST['tbname']}@@@@{$_POST['classid']}@@@{$_POST['id']}";        
    $sql=$empire->query(" INSERT INTO `{$dbtbpre}ly_recorduser` (`id`,`userid`,`text`) VALUES ( '' , {$_POST['userid']} , '{$text}' ) ");
}
?>

4、在需要查看的位置插入以下代码:
<ul>
<?php
$record=$empire->fetch1("select * from {$dbtbpre}ly_recorduser where userid = $user[userid]");
if($record)
{
    $info=explode("::::::",$record['text']);
    $text='';
    foreach($info as $v)
    {
        $arr=explode("@@@",$v);
        $sql=$empire->fetch1("select * from {$dbtbpre}ecms_{$arr[0]} where classid = {$arr[1]} and id = {$arr[2]}");
        $titleurl=sys_ReturnBqTitleLink($sql);
        $text.="<li><a href='{$titleurl}' target='_blank'>{$sql[title]}</a></li>";
    //print_r($arr);
    //die;        
    }
}
?>
<?=$text?>
</ul>
 

本文地址:https://xzo.com.cn/develop/empire/762.html

有帮助,很赞!

信息来源:下载鸥
导出教程 下载word版教程
发表评论 共有条评论
关于帝国CMS


帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用

当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。

推荐帝国CMS开发教程
忘记帝国CMS账号/密码/认证码如何重置
忘记帝国CMS账号/密码/认证码如何重置

部分用户一段时间没有登录后台,或是换了机器忘记了帝国CMS账号/密码/认证码,...

16 877
帝国CMS的下载地址怎样设置点击进入下载页而不弹小窗口
帝国CMS的下载地址怎样设置点击进入下载页而不弹小窗口

帝国cms默认的下载地址是点击后弹窗一个小窗口,用户体验度并不好,但我们可以...

13 645
帝国CMS使用JS正则验证手机邮箱出错怎么办?
帝国CMS使用JS正则验证手机邮箱出错怎么办?

最近有客户向鸥哥求助说使用JS正则验证注册手机邮箱出错了,但本地测试是完全...

11 1099
帝国CMS7.5默认伪静态规则大全(.htacces+nginx+web.config)
帝国CMS7.5默认伪静态规则大全(.htacces+nginx+web.config)

帝国CMS7.5默认伪静态规则大全(.htacces+nginx+web.config)提供了多种服务器...

1 344
帝国cms网站链接域名出现了2次,访问都是404是什么原因?
帝国cms网站链接域名出现了2次,访问都是404是什么原因?

帝国cms网站链接域名出现了2次是什么原因,要怎么解决?这个问题往往出现在用户...

1 612
帝国cms动态页、静态页、伪静态页有什么区别?
帝国cms动态页、静态页、伪静态页有什么区别?

我们知道,帝国cms既可以做动态页,也可以做静态页,还可以做伪静态页。那么,他们...

0 303
帝国cms怎样分享到微信好友、朋友圈带图片与简介
帝国cms怎样分享到微信好友、朋友圈带图片与简介

微信作为我们的国民app流量很大,简单的js分享往往只有一个二维码或者链接,但...

8 301
帝国cms编辑器ckeditor怎样获取最新内容?
帝国cms编辑器ckeditor怎样获取最新内容?

帝国cms编辑器使用的是ckeditor,想要获取最新内容需要点击两下,否则取到的不...

0 239
随机帝国CMS开发教程
帝国cms怎样给自定义表单增加更多的字段微信微博等信息?
帝国cms怎样给自定义表单增加更多的字段微信微博等信息?

今天来讲讲怎样做帝国cms自定义会员表单,辅助对前台会员的注册表单进行管理,...

1 301
有办法将多个帝国CMS网站会员系统数据库进行整合和同步吗?
有办法将多个帝国CMS网站会员系统数据库进行整合和同步吗?

如果能将手里的资源合并,会员渠道打通,则用起来更加舒服。而帝国CMS自带的会...

3 388
帝国cms搜索结果关键词标红怎么实现?
帝国cms搜索结果关键词标红怎么实现?

帝国cms7.5默认是有关键词标红功能的,但一些站使用了二开版本的搜索结果支持...

3 313
帝国CMS复选项输出函数echocheckbox是怎么用的?
帝国CMS复选项输出函数echocheckbox是怎么用的?

帝国CMS支持复选框操作,但复选框的数据如何调取则是个问题。很多人习惯按照,...

1 227
帝国CMS文章配图怎样设置自动添加水印?
帝国CMS文章配图怎样设置自动添加水印?

现在采集网站非常多,不止采集内容,还采集图片,还不标注出处,非常可恶。那么,帝国...

1 370
帝国CMS精准像素美化版怎样修改网站名
帝国CMS精准像素美化版怎样修改网站名

帝国CMS官方默认后台挺难看的,如果自用还可以,给客户则可能让客户怀疑你的审...

1 312
帝国CMS发布信息后白屏,也没有提示成功
帝国CMS发布信息后白屏,也没有提示成功

很多人在帝国CMS后台发布信息时碰到过这样的情况:提交后变成了白屏,刷新一下...

3 257
帝国cms安装报错fatal error:require():Failed opening required ../class/EmpireCMS_version.php(include_path=.
帝国cms安装报错fatal error:require():Failed opening required ../class/EmpireCMS_version.php(include_path=.

帝国CMS安装报错 fatal error:require():Failed opening required ../clas...

1 558
客服QQ:341553759
点击咨询 常见问题 >
官方交流群:90432500
点击加入