我想在会员中心调用会员的浏览记录,在论坛里搜了好几个有关的代码都不能使用,另外,变量需要用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源,以确保您不会错过最优惠的价格。