帝国cms会员空间新增最近访客功能
帝国cms会员空间增加最近访客功能,可以让用户更好地了解谁访问过他们的空间。这个功能可以通过以下步骤实现: 1. 在会员空间模板中添加一个显示最近访客的模块。 2. 在后台设置中开启这个模块。 3. 当用户访问其他用户的会员空间时,系统会自动记录下访问者的IP地址和访问时间。 4. 当用户再次访问自己的会员空间时,系统会从数据库中查询出最近访问过该用户的IP地址和访问时间,并显示在相应的位置。
本功能实现了如果用户登陆了, 就记录他的信息 如果未登陆就记录他的IP地区作为信息..
第一步: 先创建数据表 在后台执行语句
注意: _userkjf 前面要加上您的表前缀哦...
CREATETABLE`这里是你的数据库表前缀_userkjf`(`id`int(11)NOTNULLauto_increment,`lfuserid`varchar(20)charactersetgbkdefaultNULL,`bfuserid`varchar(100)charactersetgbkNOTNULL,`ip`char(50)charactersetgbkdefaultNULL,`ipdl`char(50)charactersetgbkdefaultNULL,`lftime`char(20)charactersetgbkNOTNULL,PRIMARYKEY(`id`),UNIQUEKEY`id`(`id`))ENGINE=InnoDBAUTO_INCREMENT=65DEFAULTCHARSET=latin1AUTO_INCREMENT=65;
第二步: 把以下代码 复制到 e/space/template/default/header.temp.php
<?php//取得登陆者信息$userid=getcvar('mluserid');//会员ID$uid=$_GET['userid'];//当前空间的主人IDif($uid!=$userid){//如果访客已登陆则取得访客信息并写入数据库if($userid){$lfUname=$_COOKIE["lfUname"];//获取访客信息$fkdd=$empire->fetch1("select*from{$dbtbpre}userkjfwherebfuserid='".$uid."'andlfuserid='".$userid."'");if($fkdd){}else{$empire->query("insertinto{$dbtbpre}userkjf(lfuserid,bfuserid,lftime)values($userid,$uid,'".date('Y-m-dH:i:s')."')");}}else//如果访客未登陆则取得访客信息并写入数据库{//取得IP和地区$gifo=newget_gust_info();$ip=$gifo->Getip();$ipadds=$gifo->Getaddress();foreach($ipadds[0]as$value){$ipdl.=iconv("utf-8","gbk",$value);}//获取访客信息$lfUname=$_COOKIE["lfUname"];if($lfUname==''){$empire->query("insertinto{$dbtbpre}userkjf(bfuserid,ip,ipdl,lftime)values($uid,'$ip','".$ipdl."','".date('Y-m-dH:i:s')."')");setcookie("lfUname","游客",time()+1200);//创建来访客信息20分钟过期}}}?><?php//作用取得客户端的ip、地理信息、浏览器、本地真实IPclassget_gust_info{////获得访客真实ipfunctionGetip(){if(!empty($_SERVER["HTTP_CLIENT_IP"])){$ip=$_SERVER["HTTP_CLIENT_IP"];}if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){//获取dai理ip$ips=explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);}if($ip){$ips=array_unshift($ips,$ip);}$count=count($ips);for($i=0;$i<$count;$i++){if(!preg_match("/^(10|172.16|192.168)./i",$ips[$i])){//排除局域网ip$ip=$ips[$i];break;}}$tip=empty($_SERVER['REMOTE_ADDR'])?$ip:$_SERVER['REMOTE_ADDR'];if($tip=="127.0.0.1"){//获得本地真实IPreturn$this->get_onlineip();}else{return$tip;}}////获得本地真实IPfunctionget_onlineip(){$mip=file_get_contents("http://city.ip138.com/city0.asp");if($mip){preg_match("/[.*]/",$mip,$sip);$p=array("/[/","/]/");returnpreg_replace($p,"",$sip[0]);}else{return"获取本地IP失败!";}}////根据ip获得访客所在地地名functionGetaddress($ip=''){if(empty($ip)){$ip=$this->Getip();}$ipadd=file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=".$ip);//根据新浪api接口获取if($ipadd){$charset=iconv("gbk","utf-8",$ipadd);preg_match_all("/[x{4e00}-x{9fa5}]+/u",$charset,$ipadds);return$ipadds;//返回一个二维数组}else{return"addreeisnone";}}}?><?php//-会员空间访客显示开始-----------------$fkSQL="select*from{$dbtbpre}userkjfwherebfuserid='".$uid."'orderbyiddesclimit5";$fkSQL=$empire->query($fkSQL);while($rs=$empire->fetch($fkSQL)){if($rs[lfuserid]){$fkxxrs=$empire->fetch1("selectuserid,truename,userpicfrom{$dbtbpre}enewsmemberaddwhereuserid=$rs[lfuserid]limit2");?><li><ahref="/e/space/index.php?userid=<?=$fkxxrs[userid]?>"><imgsrc="<?=$fkxxrs[userpic]?$fkxxrs[userpic]:'/templets/member/common/images/dfboy.png'?>"alt="<?=$fkxxrs[truename]?>"/></a><ahref="/e/space/index.php?userid=<?=$fkxxrs[userid]?>"><?=$fkxxrs[truename]?></a></li><?php}else{?><li><ahref="#"><imgsrc="../data/images/nouserpic.gif"/></a><span><div><?=$rs[ipdl]?"来自:".$rs[ipdl]:"未知地区"?></div><br><div><?=$rs[lftime]?></div></span></li><?php}}//-会员空间访客显示结束--------------?>
至此全部安装完成