帝国cms教程

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

我的站长站 2019-05-23 人阅读

本功能实现了如果用户登陆了, 就记录他的信息  如果未登陆就记录他的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'])){ //获取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"){ //获得本地真实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
        }
    
}
//-会员空间访客显示结束--------------       
?>

至此全部安装完成

相关推荐
  • 网站会员
  • 网站访客
  • dedecms文章审核后给会员增加积分或者金币的办法

    dedecms一般都是在会员发表完之后就把积分加上去了,因此我们需要对这套系统进行修改,具体修改方法如下:第一步是在会员发表完文章之后不加积分,方法为:找到/member/article_add.php,找到//增加积分,将下面的代码注释掉。//增加积分 //$dsql->ExecuteNoneQue...

    织梦cms教程 149 5年前
  • 帝国CMS取消会员注册时候的邮箱必填

    帝国CMS会员注册的时候,邮箱是必填项,但有时候,我们希望注册时不需要填写邮箱,但帝国CMS并没有给这样一个可以关闭的设置项。通过本教程就可以实现取消邮箱必填。以帝国CMS7.2为例:打开 /e/member/class/member_registerfun.php 文件1、查找:if(!chemail($...

    帝国cms教程 145 5年前
  • 帝国CMS会员中心如何动态提示未读消息

    登陆帝国后台------模板------动态页面模板管理------头部模板在模型下面添加下面代码部分<?//模型$tgetmid=(int)$_GET[&#39;mid&#39;];if($tmgetuserid){$member=$empire->fetch1("select userpic from phome_enewsmemberadd where userid=&#39;$t...

    帝国cms教程 142 5年前
  • ASP仿cnzz网站访客流量统计系统源码
    ASP仿cnzz网站访客流量统计系统源码

    源码介绍ASP仿cnzz网站访客流量统计系统源码,源码是asp的没有测试,功能强大,界面完美仿照cnzz统计!支持所有浏览器不乱码,程序是完整,没有删除任何东西,请大家放心使用,想建立自己的统计站点就这么简单!源...

    asp源码 57 1年前
  • 帝国cms会员空间增加最近访客功能

    本功能实现了如果用户登陆了, 就记录他的信息 如果未登陆就记录他的IP地区作为信息..第一步: 先创建数据表 在后台执行语句注意: _userkjf 前面要加上您的表前缀哦... CREATE TABLE `这里是你的数据库表前缀_userkjf` ( `id` int(11) NOT NULL a...

    帝国cms教程 179 5年前
  • 帝国CMS二次开发会员空间增加最近访客

    帝国CMS会员空间是没有访客记录功能的,所以我们需要二次开发一个,方法不是非常复杂,步骤代码会全部列出,大致效果是这样的。1、首先我们去后台新建一个会员字段,用来储存访客记录。字段名 zuijin字段标识 最近访客字段类型 字符型0-255字节(VARCHA...

    帝国cms教程 145 5年前
最新更新