技术文摘

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

作者:雨祺   发表于:
浏览:77次    字数:3643  原创
级别: 站长   总稿: 69 篇,  月稿: 0
本功能实现了如果用户登陆了, 就记录他的信息  如果未登陆就记录他的IP地区作为信息..
第一步: 先创建数据表  在后台执行语句
注意: _userkjf  前面要加上您的表前缀哦...  
  1. CREATE TABLE `这里是你的数据库表前缀_userkjf` ( 
  2.   `id` int(11) NOT NULL auto_increment, 
  3.   `lfuserid` varchar(20) character set gbk default NULL, 
  4.   `bfuserid` varchar(100) character set gbk NOT NULL, 
  5.   `ip` char(50) character set gbk default NULL, 
  6.   `ipdl` char(50) character set gbk default NULL, 
  7.   `lftime` char(20) character set gbk NOT NULL, 
  8.   PRIMARY KEY  (`id`), 
  9.   UNIQUE KEY `id` (`id`) 
  10. ) ENGINE=InnoDB AUTO_INCREMENT=65 DEFAULT CHARSET=latin1 AUTO_INCREMENT=65 ; 
第二步: 把以下代码 复制到  e/space/template/default/header.temp.php
  1. <?php 
  2. //取得登陆者信息 
  3. $userid =getcvar('mluserid');    //会员ID   
  4. $uid=$_GET['userid'];//当前空间的主人ID 
  5.       
  6. if ($uid!=$userid) 
  7.   //如果访客已登陆  则取得访客信息并写入数据库 
  8.   if($userid) 
  9.   {         
  10.           $lfUname = $_COOKIE["lfUname"];//获取访客信息 
  11.       
  12. $fkdd=$empire->fetch1("select * from {$dbtbpre}userkjf where  bfuserid='".$uid."' and lfuserid='".$userid."'"); 
  13.         
  14.         
  15.    if($fkdd) 
  16.           { 
  17.   
  18.           } 
  19.   
  20.   else 
  21.         
  22.   { 
  23.       
  24. $empire->query("insert into {$dbtbpre}userkjf(lfuserid,bfuserid,lftime) values($userid,$uid,'".date('Y-m-dH:i:s')."')"); 
  25.      
  26.   } 
  27.   
  28.   } 
  29.   else//如果访客未登陆  则取得访客信息并写入数据库 
  30.   { 
  31.           //取得IP 和地区 
  32.            $gifo = new get_gust_info(); 
  33.            $ip=$gifo->Getip(); 
  34.            $ipadds = $gifo->Getaddress(); 
  35.            foreach($ipadds[0] as $value){ 
  36.                    $ipdl.=iconv("utf-8","gbk",$value);    
  37.            } 
  38.                 
  39.           //获取访客信息 
  40.           $lfUname = $_COOKIE["lfUname"]; 
  41.                 
  42.           if($lfUname==''
  43.           { 
  44.           $empire->query("insert into {$dbtbpre}userkjf(bfuserid,ip,ipdl,lftime) values($uid,'$ip','".$ipdl."','".date('Y-m-d 
  45.       
  46. H:i:s')."')"); 
  47.                   setcookie("lfUname","游客",time()+1200);   //创建来访客信息  20分钟过期 
  48.           } 
  49.   } 
  50. ?> 
  51. <?php 
  52. // 作用取得客户端的ip、地理信息、浏览器、本地真实IP 
  53. class get_gust_info { 
  54.       
  55.   ////获得访客真实ip 
  56.   function Getip(){ 
  57.    if(!empty($_SERVER["HTTP_CLIENT_IP"])){    
  58.       $ip = $_SERVER["HTTP_CLIENT_IP"]; 
  59.    } 
  60.    if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ //获取代理ip 
  61.     $ips = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']); 
  62.    } 
  63.    if($ip){ 
  64.       $ips = array_unshift($ips,$ip); 
  65.    } 
  66.          
  67.    $count = count($ips); 
  68.    for($i=0;$i<$count;$i++){    
  69.      if(!preg_match("/^(10|172.16|192.168)./i",$ips[$i])){//排除局域网ip 
  70.       $ip = $ips[$i]; 
  71.       break;    
  72.       }   
  73.    }   
  74.    $tip = empty($_SERVER['REMOTE_ADDR']) ? $ip : $_SERVER['REMOTE_ADDR']; 
  75.    if($tip=="127.0.0.1"){ //获得本地真实IP 
  76.       return $this->get_onlineip();    
  77.    }else
  78.       return $tip; 
  79.    } 
  80.   } 
  81.         
  82.   ////获得本地真实IP 
  83.   function get_onlineip() { 
  84.       $mip = file_get_contents("http://city.ip138.com/city0.asp"); 
  85.        if($mip){ 
  86.            preg_match("/[.*]/",$mip,$sip); 
  87.            $p = array("/[/","/]/"); 
  88.            return preg_replace($p,"",$sip[0]); 
  89.        }else{return "获取本地IP失败!";} 
  90.    } 
  91.         
  92.   ////根据ip获得访客所在地地名 
  93.   function Getaddress($ip=''){ 
  94.    if(empty($ip)){ 
  95.        $ip = $this->Getip();    
  96.    } 
  97.    $ipadd = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=".$ip);//根据新浪api接口获取 
  98.    if($ipadd){ 
  99.     $charset = iconv("gbk","utf-8",$ipadd);    
  100.     preg_match_all("/[x{4e00}-x{9fa5}]+/u",$charset,$ipadds); 
  101.          
  102.     return $ipadds;   //返回一个二维数组 
  103.    }else{return "addree is none";}   
  104.   } 
  105.       
  106. ?> 
  107.       
  108. <?php 
  109. //-会员空间访客显示开始----------------- 
  110. $fkSQL="select * from {$dbtbpre}userkjf where bfuserid='".$uid."' order by id desc limit 5"
  111. $fkSQL=$empire->query($fkSQL); 
  112.       
  113. while($rs=$empire->fetch($fkSQL)) 
  114.       
  115.         if($rs[lfuserid]) 
  116.         { 
  117.                 $fkxxrs=$empire->fetch1("select userid,truename,userpic from {$dbtbpre}enewsmemberadd where userid=$rs[lfuserid] limit 
  118.       
  119. 2"); 
  120. ?> 
  121.       
  122.       
  123.       
  124. <li> 
  125. <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> 
  126. <a href="/e/space/index.php?userid=<?=$fkxxrs[userid]?>"><?=$fkxxrs[truename]?></a> 
  127. </li> 
  128.       
  129.       
  130.       
  131.       
  132.       
  133. <?php        
  134.         } 
  135.         else 
  136.         { 
  137. ?> 
  138.                         <li> 
  139.                             <a href="#"><img src="../data/images/nouserpic.gif"   /></a> 
  140.                         <span> 
  141.                                 <div><?=$rs[ipdl]?"来自:".$rs[ipdl]:"未知地区"?></div> 
  142.                             <br> 
  143.                             <div><?=$rs[lftime]?></div> 
  144.                         </span> 
  145.                     </li> 
  146. <?php 
  147.         } 
  148.       
  149. //-会员空间访客显示结束--------------        
  150. ?> 

【审核人:站长】

收藏   加好友   生成海报   分享
点赞(0)
打赏
Tags: 会员 帝国CMS

发布者资料

热门文章

技术文摘

查看更多技术文摘
首页
栏目
搜索
会员
投稿