本功能實現了如果用戶登陸了, 就記錄他的信息 如果未登陸就記錄他的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
}
}
//-會員空間訪客顯示結束--------------
?>
至此全部安裝完成
效果圖如下:
注意: 獲取ip所在地鏈接已失效