帝国论坛帝国网站管理系统交流区帝国CMS使用交流[原创]分享会员空间访客的 最近访客 【本版专题贴子】  
 1/2     1 2 ›› ›|
主题:[原创]分享会员空间访客的 最近访客 [加入收藏夹]   

longlzc
用户头衔:秀才

精华贴   :0
发贴数   :107
经验值   :311
注册时间:2012-07-06
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
[原创]分享会员空间访客的 最近访客


刚学接触帝国CMS不久.  弄个来玩玩.. 做得不好,不要喷哦...哈..

预览地址:  http://www.uduwi.com/e/space/list.php?userid=1&mid=1

类型QQ空间一样.. (差不多吧)

如果访客登陆了. 就记录他的ID  如果未登陆就记录他的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/pf1/left.temp.php

当然也不一定放在这个文件里...根据需要吧....

说明:pf1 为我个人的模板





<?php
//取得登陆者信息
$userid   =getcvar('mluserid');    //会员ID  
//$username =getcvar('mlusername');  //会员用户名
$uid=$_GET['userid'];//当前空间的主人ID

if ($uid!=$userid)
{
  //如果访客已登陆  则取得访客信息并写入数据库
  if($userid)
  {        
          $lfUname = $_COOKIE["lfUname"];//获取访客信息
          
          if($lfUname=='')
          {
                  $empire->query("insert into {$dbtbpre}userkjfk(lfuserid,bfuserid,lftime) values($userid,$uid,'".date('Y-m-d

H:i:s')."')");
                  setcookie("lfUname",$userid,time()+1200);   //创建来访客信息  20分钟过期
          }
  
  }
  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}userkjfk(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}userkjfk 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

1");
?>
                        <li>
                            <a href="/e/space/index.php?userid=<?=$fkxxrs[userid]?>" target="_blank">
                                <img src="<?=$fkxxrs[userpic]?$fkxxrs[userpic]:'../data/images/nouserpic.gif'?>" width="50" height="50"

/>
                        </a>
                        <span>
                                <b><?=$fkxxrs[truename]?></b>
                            <div><?=$rs[lftime]?></div>
                        </span>
                    </li>
<?php       
        }
        else
        {
?>
                        <li>
                            <a href="#"><img src="../data/images/nouserpic.gif"  width="50" height="50"/></a>
                        <span>
                                <div><?=$rs[ipdl]?"来自:".$rs[ipdl]:"未知地区"?></div>
                            <br>
                            <div><?=$rs[lftime]?></div>
                        </span>
                    </li>
<?php
        }

}
//-会员空间访客显示结束--------------       
?>   








就这么多...



肇庆科技职业技术学院
2012-10-21 18:43:39 已设置保密 顶部 回复 引用 报告 编辑 删除

ibook
用户头衔:探花

精华贴   :0
发贴数   :2176
经验值   :6379
注册时间:2010-06-29
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

支持




2012-10-21 18:50:48 已设置保密 顶部 回复 引用 报告 编辑 删除

麦蒂
用户头衔:探花

精华贴   :0
发贴数   :6368
经验值   :17545
注册时间:2009-03-06
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

不错,收藏




2012-10-22 08:41:36 已设置保密 顶部 回复 引用 报告 编辑 删除

buleba
用户头衔:举人

精华贴   :0
发贴数   :379
经验值   :1433
注册时间:2012-07-28
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

不错支持。。。



捕乐吧www.buleba.com使用帝国CMS建站!帝国很牛X,学习努力学习!
2012-10-22 09:46:06 已设置保密 顶部 回复 引用 报告 编辑 删除

windows2008
用户头衔:进士

精华贴   :0
发贴数   :1173
经验值   :3095
注册时间:2008-10-14
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

支持




2012-10-22 13:53:06 已设置保密 顶部 回复 引用 报告 编辑 删除

pkkgu
用户头衔:探花 *

精华贴   :2
发贴数   :1941
经验值   :6854
注册时间:2008-12-17
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

我用一个字段完成的 会员空间访问记录

function UpdateSpaceViewUserid($userid,$viewuserid){
        global $empire,$dbtbpre,$user_tablename,$public_r;
        $mluserid=(int)getcvar('mluserid');
        if($userid&&$userid!=$mluserid)
        {
                $f='|';
                $ff='||';
                $ffuserid=$f.$mluserid.$f;
                $view=str_replace($ffuserid,'',$viewuserid,$i);             //清除当前会员ID
                if($viewuserid&&$view)
                {
                        $w=substr($view,1,strlen($view)-2);                     //前后去掉一个字符
                        $warr=explode($ff,$w);
                        $count_=count($warr);
                        if($count_==1)
                        {
                                $ffuserid=$ffuserid.$view;
                        }
                        else
                        {
                                $warr=array_unique($warr);                          //删除重复会员ID记录
                                $wcon=array_unshift($warr,$mluserid);               //数组开头插入当前会员ID 返回当前数组数量
                                $zdnum=12;                                          //最多浏览会员ID数量
                                if($wcon>$zdnum)                                    //大于12个记录
                                {
                                        array_splice($warr,$zdnum);                     //删除数组第12个键之后的数组
                                }
                                $ffuserid=$f.implode($ff,$warr).$f;                 //数组转为字符串
                        }
                }
                $viewuserid=$ffuserid;
                $sql=$empire->query("update {$dbtbpre}enewsmemberadd set viewuserid='$viewuserid' where userid='".$userid."'");
                //esetcookie("dospacevuserid",1,time()+3600);         //写入COOKIE
        }
        if($viewuserid)
        {
                $w=substr($viewuserid,1,strlen($viewuserid)-2);                 //前后去掉一个字符
                $useridarr=str_replace("||",",",$w);
                $ret=array();
                $ret['userid']=array();
                $ret['username']=array();
                $ret['userpic']=array();
                $sql=$empire->query("select userid,username from {$user_tablename} where userid in (".$useridarr.")");
                while($r=$empire->fetch($sql))
                {
                        $fr=$empire->fetch1("select userpic from {$dbtbpre}enewsmemberadd where userid='".$r[userid]."' limit 1");
                        $ret['userid'][]=$r[userid];
                        $ret['username'][]=$r[username];
                        //头像
                        $fr['userpic']?$fr['userpic']=$public_r['add_www'].$fr['userpic']:$fr['userpic']=$public_r['add_www'].'e/data/images/nouserpic.gif';
                        $ret['userpic'][]=$fr['userpic'];
                }
                return $ret;
        }
}



www.hz36.com帝国演示站
www.hz39.com帝国演示站
基于帝国ECMS6.6_公文签收系统
QQ:910111100
2012-10-22 14:03:13 已设置保密 顶部 回复 引用 报告 编辑 删除

tkf88
用户头衔:探花

精华贴   :0
发贴数   :8848
经验值   :22522
注册时间:2007-05-26
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

不错




2012-10-22 18:37:17 已设置保密 顶部 回复 引用 报告 编辑 删除

500919
用户头衔:探花

精华贴   :0
发贴数   :11670
经验值   :31217
注册时间:2009-03-02
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

好东西,支持




2012-10-23 08:20:01 已设置保密 顶部 回复 引用 报告 编辑 删除

longlzc
用户头衔:秀才

精华贴   :0
发贴数   :107
经验值   :311
注册时间:2012-07-06
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

原帖由 pkkgu 于 2012-10-22 14:03:13 发表
我用一个字段完成的 会员空间访问记录

function UpdateSpaceViewUserid($userid,$viewuserid){
        global $empire,$dbtbpre,$u...




不错哦..交流交流...



肇庆科技职业技术学院
2012-10-24 14:12:08 已设置保密 顶部 回复 引用 报告 编辑 删除

heyi800
用户头衔:书生

精华贴   :0
发贴数   :64
经验值   :142
注册时间:2012-10-11
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

楼主总结的不错,谢谢楼主的分享




2012-10-24 15:52:45 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/2     1 2 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1