1 652 2020-12-01 12:57:56
收藏本功能实现了如果用户登陆了, 就记录他的信息 如果未登陆就记录他的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
如果您认可我们的分享,有意与我们合作开展帝国cms网站建设与开发业务或插件定制,请联系右侧在线客服。我们能给您的,就是高质量的模板与售后。
标注了信息来源为下载鸥的文章皆为原创,如果是转载的优质文章,我们也都标注了出处。如果您喜欢我们的文章,请按照下载鸥所标注的文章出处进行标注,谢谢您的配合。
帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用。
当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。
帝国CMS一级栏目和二级栏目使用同一个模板,二级栏目是终极栏目,调用本栏目数...
许多客户在使用帝国cms建站后想要再做一个网站,但复制所有的文件到新服务器...
如果对被攻击一无所知,也没有听说过CC、DDoS的概念,那被攻击以后,只能懵逼等到...
帝国cms自带的js是可以实现周榜、月榜效果的,但js由于其临时加载的特性,天生...
如果直接在帝国cms模板中插入360推送代码,会发现在插入360推送代码后,无法正...
想要在帝国cms后台禁止发布标题相同的信息,或是在发布信息时验证一下标题是...
帝国cms开发的网站数据要经常备份,防范不小心误删除了数据或文件以及服务器...
帝国cms根据关键词调用相关文章,每个关键词调用信息不超过4条,如果关键词和栏...
本插件基于帝国cms帝国cms每日自动审核插件,在自动审核指定条数信息的基础上...
帝国CMS自带的搜索功能虽然强大,但也有很强的局限性 -- 必须关键词完全匹配...
帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...
帝国cms有自带的给关键词添加内链功能,但需要手动添加关键词,容易出现疏漏和...
用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...
使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...
许多网站会做一些小功能小插件给客户使用以增强用户黏性,比如图片转文字,这种...
下载鸥开发了这款帝国cms封禁ip插件,自动记录访问情况,让我们可以更快的识别...