帝国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
}
}
//-会员空间访客显示结束--------------
?>
至此全部安装完成
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。



