我想在会员中心调用会员的浏览记录,在论坛里搜了好几个有关的代码都不能使用,另外,变量需要用RepPostVar()函数过滤一下,我不会,哪位帮忙处理一下,大家谁有可用的代码,谢谢。
答:
这个主耍是展示会员浏览记录的。在哪儿都可以调用(第4步就是调用方法),另外是各个模型都可以调用,方法是在各个模型的内容页上写上第2步。我是在会员中心调用的,是用来展示会员最近9条浏览记录。
注意下面的代码变量没过滤好,或者说没过滤,比如用户id要转成整型,下面所有的$_POST变量都应加RepPostVar()函数处理过滤一下。
1:首先新建一张表
帝国后台--系统--备份数据--执行sql:
是utf8 编码的用下面代码:
CREATE TABLE phome_ly_recorduser ( `id` INT( 10 ) NOT NULL AUTO_INCREMENT , `userid` INT( 10 ) NOT NULL , `text` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM ;
是gb2312 编码的用下面代码:
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>
function time(){//构建方法
var time=new Date();//new 出当前时间
var h=time.getFullYear();//获取年
var m=time.getMonth()+1;//获取月
var d=time.getDate();//获取日
var H = time.getHours();//获取时
var M = time.getMinutes();//获取分
var S = time.getSeconds();//获取秒
return h+"-"+m+"-"+d+" "+H+":"+M+":"+S; //返回 年-月-日 时:分:秒
}
//栏目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,time:time},
"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]");
$i=0;
if($record)
{
$info=explode("::::::",$record['text']);
$text='';
foreach($info as $v)
{
$i=$i+1;
$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>
<div class='user-info'> <a class='user-avatar' target='_blank' href='{$titleurl}'> <img src='{$sql[titlepic]}' alt=''> <span class='rank-tag rank-tag-first'> <b class='txt'>
{$i}
</b> <b class='floor'></b> </span> </a>
<div class='info-details'>
<p> <a class='user-name textoverflow' target='_blank' href='{$titleurl}'>
{$sql[title]}
</a> </p>
<p> <a href='' target='_blank' style='text-decoration:none'> <img src='/skin/cp/358time.png' style='width:16px; height:16px; margin-top:3px;' > {$arr[3]}</a> </p>
</div>
</div>
</li>";
//print_r($arr);
//die;
}
}
?>
<?=$text?>
</ul>
VPS就是在物理服务器中分割出多个虚拟分区,每个分区都拥有独立的操作系统、内存、磁盘和带宽,可以自主开机、关机、重启以及安装软件应用和配置环境等等,在使用体验上和一台真正的独立服务器没有区别。简而言之,VPS就是让你用更少的钱享受到和独立服务器相同的体验,以及比虚拟主机更多的硬件资源。
如果你希望享受到比虚拟主机更多的功能和硬件资源配额,但是又无法承受独立服务器的高成本,那么VPS可能是你最理想的选择。通过选择“VPS”,可以以更低的成本享受到和一台真正的独立服务器同样的体验。如果需要更多资源,还可以在商家后台可以一键升级套餐。
VPSNO一直致力于发布全球主机商的便宜VPS,包含便宜 Linux VPS、便宜 Windows VPS和独立服务器的最新促销信息。可以通过每天浏览本站或是订阅我们的RSS源,以确保您不会错过最优惠的价格。

