新聞中心
本文操作環(huán)境:Windows7系統(tǒng),php7.4版,Dell G3電腦。

綠春網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站開(kāi)發(fā)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
php 怎么實(shí)現(xiàn)訪客次數(shù)?
PHP準(zhǔn)確的實(shí)現(xiàn)頁(yè)面訪問(wèn)統(tǒng)計(jì)次數(shù)
1、需要兩個(gè)數(shù)據(jù)庫(kù)表
①、IP記錄表
create table ip (ipid int(11) NOT NULL default '',ipdata varchar(16) NOT NULL default '',iptime varchar(30) NOT NULL default '', primary key(ipid));
注:ipdata為記錄的訪問(wèn)者的ip,iptime為記錄的該ip訪問(wèn)
②、統(tǒng)計(jì)次數(shù)統(tǒng)計(jì)表
create table count (todayipcount int(11) NOT NULL default '',allipcount int(11) NOT NULL default '',day varchar(2) NOT NULL default '');
insert into count (todayipcount,allipcount,day) values ('0','0','0');
2、實(shí)現(xiàn)方法
在你的要進(jìn)行統(tǒng)計(jì)次數(shù)的頁(yè)面上放如下代碼:
$realip=getip(); modifyipcount($realip);
getip()函數(shù)的代碼為:
function getip()
{
if (isset($_SERVER))
{
if (isset($_SERVER[HTTP_X_FORWARDED_FOR]) && strcasecmp($_SERVER[HTTP_X_FORWARDED_FOR], "unknown"))//代理
{
$realip = $_SERVER[HTTP_X_FORWARDED_FOR];
}
elseif(isset($_SERVER[HTTP_CLIENT_IP]) && strcasecmp($_SERVER[HTTP_CLIENT_IP], "unknown"))
{
$realip = $_SERVER[HTTP_CLIENT_IP];
}
elseif(isset($_SERVER[REMOTE_ADDR]) && strcasecmp($_SERVER[REMOTE_ADDR], "unknown"))
{
$realip = $_SERVER[REMOTE_ADDR];
}
else
{
$realip = 'unknown';
}
}
else
{
if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
{
$realip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
{
$realip = getenv("HTTP_CLIENT_IP");
}
elseif(getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
{
$realip = getenv("REMOTE_ADDR");
}
else
{
$realip = 'unknown';
}
}
return $realip;
}
注:此函數(shù)代碼網(wǎng)上到處都有
modifyipcount()函數(shù)的代碼為:
function modifyipcount($ip)
{
<-----------------------數(shù)據(jù)庫(kù)的連接省略------------------------->
$query="SELECT * FROM ip where ipdata='".$ip."'";
$result=mysql_query($query);
$row=mysql_fetch_array($result);
$iptime=time();
$day=date('j');
if(!$row)
{
$query="INSERT INTO ip (ipdata,iptime) VALUES ('".$ip."','".$iptime."')";
mysql_query($query);
$query="SELECT day,todayipcount,allipcount FROM count";
$result=mysql_query($query);
$row=mysql_fetch_array($result);
$allipcount=$row['allipcount']+1;
$todayipcount=$row['todayipcount']+1;
if($day==$row['day'])
{
$query="UPDATE count SET allipcount='".$allipcount."',todayipcount='".$todayipcount."'";
}
else
{
$query="UPDATE count SET allipcount='".$allipcount."',day='".$day."',todayipcount='1'";
}
mysql_query($query);
}
else
{
$query="SELECT iptime FROM ip WHERE ipdata='".$ip."'";
$result=mysql_query($query);
$row=mysql_fetch_array($result);
$query="SELECT day,todayipcount,allipcount FROM count";
$result=mysql_query($query);
$row1=mysql_fetch_array($result);
if($iptime-$row['iptime']>86400)
{
$query="UPDATE ip SET iptime='".$iptime."' WHERE ipdata='".$ip."'";
mysql_query($query);
$allipcount=$row1['allipcount']+1;
if($day==$row1['day'])
{
$query="UPDATE count SET allipcount='".$allipcount."'";
}
else
{
$query="UPDATE count SET allipcount='".$allipcount."',day='".$day."',todayipcount='1'";
}
mysql_query($query);
}
if($day!=$row1['day'])
{
$query="UPDATE count SET day='".$day."',todayipcount='1'";
mysql_query($query);
}
}
}
注:這里我設(shè)置24小時(shí)內(nèi)訪問(wèn)統(tǒng)計(jì)次數(shù)只加1
這樣我們調(diào)用數(shù)據(jù)庫(kù)表count中的todayipcount和allipcount就可以得到今日訪問(wèn)IP和總訪問(wèn)IP,個(gè)人覺(jué)得是很準(zhǔn)確的,歡迎大家有不同意見(jiàn)提出。
標(biāo)題名稱:php怎么實(shí)現(xiàn)訪客次數(shù)
地址分享:http://www.dlmjj.cn/article/dpjcjcg.html


咨詢
建站咨詢
