我想在会员中心调用会员的浏览记录,在论坛里搜了好几个有关的代码都不能使用,另外,变量需要用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>







aipay无法跳转充值,咋整呢
用了几天,发现不分联通电信,在傍晚高峰期都会变得很慢。总体能用,这么便宜还要什么自行车
另外联通测速很好 10M+,电信下载只有100k,上传倒是很快