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