帝国cms会员空间增加最近访客功能

本功能实现了如果用户登陆了, 就记录他的信息  如果未登陆就记录他的IP地区作为信息..

第一步: 先创建数据表  在后台执行语句

注意: _userkjf  前面要加上您的表前缀哦…  

CREATE TABLE `这里是你的数据库表前缀_userkjf` (
  `id` int(11) NOT NULL auto_increment,
  `lfuserid` varchar(20) character set gbk default NULL,
  `bfuserid` varchar(100) character set gbk NOT NULL,
  `ip` char(50) character set gbk default NULL,
  `ipdl` char(50) character set gbk default NULL,
  `lftime` char(20) character set gbk NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=65 DEFAULT CHARSET=latin1 AUTO_INCREMENT=65 ;

第二步: 把以下代码 复制到  e/space/template/default/header.temp.php

<?php
//取得登陆者信息
$userid =getcvar('mluserid');    //会员ID  
$uid=$_GET['userid'];//当前空间的主人ID
    
if ($uid!=$userid)
{
  //如果访客已登陆  则取得访客信息并写入数据库
  if($userid)
  {        
          $lfUname = $_COOKIE[lfUname];//获取访客信息
    
$fkdd=$empire->fetch1(select * from {$dbtbpre}userkjf where  bfuserid='.$uid.' and lfuserid='.$userid.');
      
      
   if($fkdd)
          {

          }

  else
      
  {
    
$empire->query(insert into {$dbtbpre}userkjf(lfuserid,bfuserid,lftime) values($userid,$uid,'.date('Y-m-dH:i:s').'));
   
  }

  }
  else//如果访客未登陆  则取得访客信息并写入数据库
  {
          //取得IP 和地区
           $gifo = new get_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(insert into {$dbtbpre}userkjf(bfuserid,ip,ipdl,lftime) values($uid,'$ip','.$ipdl.','.date('Y-m-d
    
H:i:s').'));
                  setcookie(lfUname,游客,time()+1200);   //创建来访客信息  20分钟过期
          }
  }
}
?>
<?php
// 作用取得客户端的ip、地理信息、浏览器、本地真实IP
class get_gust_info {
    
  ////获得访客真实ip
  function Getip(){
   if(!empty($_SERVER[HTTP_CLIENT_IP])){   
      $ip = $_SERVER[HTTP_CLIENT_IP];
   }
   if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ //获取代理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){ //获得本地真实IP
      return $this->get_onlineip();   
   }else{
      return $tip;
   }
  }
      
  ////获得本地真实IP
  function get_onlineip() {
      $mip = file_get_contents(http://city.ip138.com/city0.asp);
       if($mip){
           preg_match(/[.*]/,$mip,$sip);
           $p = array(/[/,/]/);
           return preg_replace($p,,$sip[0]);
       }else{return 获取本地IP失败!;}
   }
      
  ////根据ip获得访客所在地地名
  function Getaddress($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 addree is none;}  
  }
}
    
?>
    
<?php
//-会员空间访客显示开始-----------------
$fkSQL=select * from {$dbtbpre}userkjf where bfuserid='.$uid.' order by id desc limit 5;
$fkSQL=$empire->query($fkSQL);
    
while($rs=$empire->fetch($fkSQL))
{
    
        if($rs[lfuserid])
        {
                $fkxxrs=$empire->fetch1(select userid,truename,userpic from {$dbtbpre}enewsmemberadd where userid=$rs[lfuserid] limit
    
2);
?>
    
    
    
<li>
<a href=/e/space/index.php?userid=<?=$fkxxrs[userid]?>><img src=<?=$fkxxrs[userpic]?$fkxxrs[userpic]:'/templets/member/common/images/dfboy.png'?>   alt=<?=$fkxxrs[truename]?> /></a>
<a href=/e/space/index.php?userid=<?=$fkxxrs[userid]?>><?=$fkxxrs[truename]?></a>
</li>
    
    
    
    
    
<?php       
        }
        else
        {
?>
                        <li>
                            <a href=#><img src=../data/images/nouserpic.gif   /></a>
                        <span>
                                <div><?=$rs[ipdl]?来自:.$rs[ipdl]:未知地区?></div>
                            <br>
                            <div><?=$rs[lftime]?></div>
                        </span>
                    </li>
<?php
        }
    
}
//-会员空间访客显示结束--------------       
?>

至此全部安装完成