首页 > CMS > 帝国Empire > 正文

帝国cms记录会员浏览信息的插件

2024-08-28 12:25:28
字体:
来源:转载
供稿:网友
数据库保存模式记录会员浏览的最新的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>
浏览记录.zip
d14b782989459d8641bdad6d546d0413.zip (1.17 KB)
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表