下载鸥 > 网站下载 > 开发教程 > 帝国CMS

帝国cms会员空间怎样做最近访客功能

1285 2020-12-01 12:57:56

收藏

简述

按下方教程操作即可实现记录登录信息或ip的功能。

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

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

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

CREATE TABLE `phome_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
        }
     
}
//-会员空间访客显示结束--------------       
?>

至此,帝国cms会员空间记录访客信息就全部实现了。

本文地址:https://xzo.com.cn/develop/empire/189.html

有帮助,很赞!

信息来源:精准像素
导出教程 下载word版教程
发表评论 共有条评论
关于帝国CMS


帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用

当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。

推荐帝国CMS开发教程
帝国CMS怎样设置TAG伪静态
帝国CMS怎样设置TAG伪静态

从优化的角度来说,帝国CMS的动态tag由于是带问号的URL,搜索引擎不大喜欢,收录...

11 1287
帝国CMS使用JS正则验证手机邮箱出错怎么办?
帝国CMS使用JS正则验证手机邮箱出错怎么办?

最近有客户向鸥哥求助说使用JS正则验证注册手机邮箱出错了,但本地测试是完全...

11 1296
宝塔面板帝国cms搬家报错No input file specified
宝塔面板帝国cms搬家报错No input file specified

今天有客户向鸥哥求助说宝塔面板帝国cms搬家报错No input file specified,这...

23 2270
帝国cms文章列表、详情怎样实时显示点击数?
帝国cms文章列表、详情怎样实时显示点击数?

常有客户要求文章列表、详情能够实时显示点击数,但又不想将静态页面改为动态...

6 646
帝国CMS留言板怎样增加字段?
帝国CMS留言板怎样增加字段?

网站留言板是用户留存的重要环节,但帝国cms自带的留言板功能十分单一,大多数...

1 484
帝国cms怎样将一二三级置顶改为首页栏目置顶等其他名字?
帝国cms怎样将一二三级置顶改为首页栏目置顶等其他名字?

帝国cms推荐、头条级别要改名都可以在栏目设置(栏目-头条/推荐级别)里进行修...

1 574
帝国cms列表页list.var调用tags怎么做?
帝国cms列表页list.var调用tags怎么做?

文章tag作为文章的重要组成部分,在信息集合上表现非常好,如果合理利用,能获得...

3 554
帝国cms怎样在发布文章后自动生成目录
帝国cms怎样在发布文章后自动生成目录

文章如果带有目录,可以让用户在浏览文章时对文章结构一目了然,对于用户体验提...

9 1653
推荐插件
帝国cms自动给正文关键词添加tag内链
帝国cms自动给正文关键词添加tag内链

帝国cms有自带的给关键词添加内链功能,但需要手动添加关键词,容易出现疏漏和...

0 952
帝国cms百度文字识别ocr接口对接插件
帝国cms百度文字识别ocr接口对接插件

许多网站会做一些小功能小插件给客户使用以增强用户黏性,比如图片转文字,这种...

0 558
帝国cms多栏目多数据表自动审核推送插件
帝国cms多栏目多数据表自动审核推送插件

本插件基于帝国cms帝国cms每日自动审核插件,在自动审核指定条数信息的基础上...

0 1042
帝国cms纳米数据接口(足球比赛中最新数据)
帝国cms纳米数据接口(足球比赛中最新数据)

帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...

0 581
帝国cms百度AI图像去雾api接口对接插件
帝国cms百度AI图像去雾api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像去雾的功能。经过实际...

0 550
帝国CMS内网用户静态站点文章访客统计插件
帝国CMS内网用户静态站点文章访客统计插件

本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...

0 665
帝国cms百度AI图像无损放大api接口对接插件
帝国cms百度AI图像无损放大api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像无损放大的功能。经过...

0 551
帝国cms百度AI黑白图像上色api接口对接插件
帝国cms百度AI黑白图像上色api接口对接插件

百度开放了系列AI功能api如图像上色、图像去雾、图像修复、无损放大、清晰...

0 527
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入