十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
php 統(tǒng)計在線人數(shù) 根據(jù)IP判斷哪個地方多少人, 也就是說...
為新民等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及新民網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站建設(shè)、新民網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
使用數(shù)據(jù)庫,建立一個表,比如名字是online,至少有以下列:
name_ip 存放登錄用戶名,未登錄的存放IP,char類型
url 存放每個頁面的地址,char類型
last_time 存放刷新頁面的最后時間,int類型
表的主鍵是:name_ip+url
每個頁面一開始就要刷新這個表,使用的SQL是:
$name_ip='用戶名或者IP';//你能搞定
$url=$_SERVER["PHP_SELF"];
$time=time();
$sql="replace delayed into online (name_ip,url,last_time) values ('$name_ip','$url',$time)";
mysql_query($sql);
獲取某頁面在線人數(shù)的查詢是語句
$limit=time()-10*60;//10分鐘內(nèi)訪問的認(rèn)為在線,10分鐘*60秒/分鐘
$sql="select count(*) from online where url='$url' and last_time=$limit";
$res=mysql_query($sql);
list($online_count)=mysql_fetch_row($res);
mysql_free_result($res);
echo "本頁面在線人數(shù): $online_count";
一帆風(fēng)順吉星到 萬事如意福臨門 財源廣進(jìn)
連接數(shù)據(jù)庫都會了,查詢出來也會吧?參考;
$query?=?"select?*?from?table?";
$i=0;
if?($result?=?mysqli_query($link,?$query))?{
while?($finfo?=?mysqli_fetch_field($result))?{
if($ip==$finfo-ip)
{
$i=1;
}
}
if($i==1)
{
echo?"1";
}
else{
echo?"0";
}
mysqli_free_result($result);
}
mysqli_close($link);
好,分我要了,你需求是來路ip記錄在ip.txt里,countdata.txt是訪問次數(shù)對吧。但是你的需求我沒看明白,ip.txt僅僅是用來存貯最后訪問ip,而不是全部訪問ip嗎?那么countdata.txt也沒啥意義了,僅僅是統(tǒng)計頁面打開次數(shù)而已了。理解的有問題嗎?
我的理解是是ip.txt存放所有ip地址,countdata.txt里存放ip和該ip對應(yīng)的點擊次數(shù)。其實也就需要countdata.txt一個就可以了,如果有新ip,存入,該ip訪問次數(shù)+1,如果已存在改ip,ip訪問次數(shù)+1。
如果只是存貯最后訪問ip和總訪問次數(shù),那太簡單了。等你回復(fù),確定需求后給代碼
讀取LOG,遍歷,前三段作為數(shù)組鍵,匹配到一次,對應(yīng)鍵值就累加。
示例:
foreach($log as $val) {
if(in_array($val, array_keys($array))) $array['192.168.1']++;
}
這只是一個思路哦,$val如果192.168.1.12要作一下處理,取前三段,不然就沒法匹配了,以上代碼供參考,希望能幫助到您。
?php
session_start();
if(!isset($_SESSION['ip'])){
$count = file_get_contents('count');
file_put_contents('count',intval($count)+1);
$_SESSION['ip'] = 1;
}
?
不需要用到數(shù)據(jù)庫、因為你只統(tǒng)計一個訪問量