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

其他技术 站长 浏览 评论

数据库保存模式记录会员浏览的最新的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>

转载请注明:网页阁吧 » 帝国CMS会员最近访问浏览记录插件