帝国CMS会员最近访问浏览记录插件

时间:2024年03月30日

/

来源:网络

/

编辑:佚名

数据库保存模式记录会员浏览的最新的10条信息。
拓展:记录游客的话,记录游客的cookie或者IP。论坛有个以cookie形式保存在客户端的插件。实现办法都一样。我觉得保存在数据库安全点。

1:首先新建一张表
帝国后台–系统–备份数据–执行sql:
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
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
text
/
        表名称:
        栏目ID
        信息ID
表名称@@@栏目ID@@@信息ID::::::
/
*/        
//查询是否已有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>
猜你需要

豫ICP备2021026617号-1  豫公网安备:41172602000185   Copyright © 2021-2028 www.78moban.com/ All Rights Reserved

本站作品均来自互联网,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如有侵犯您的版权,请联系 1565229909#qq.com(把#改成@),我们将立即处理。