當前位置:首頁 » 編程語言 » php統計人數

php統計人數

發布時間: 2022-08-08 08:55:36

A. 怎麼用php寫個在線訪問人數統計

你所說的「其中一個人關閉了網站」是一個很明顯的錯誤,網站的來訪者所關閉的不是「網站」,只是他自己的瀏覽器。
從 Web 服務的機制上來說,伺服器只是接收到對某個網頁的請求後把相應的 HTML 格式的內容(可能包括 JavaScript程序)發送給請求者以後就關閉連接,至於瀏覽器端的用戶是什麼時候關閉瀏覽器(或者說是轉移去查看別的網站的網頁去了)伺服器端是得不到任何信息的。
PHP、ASP、JSP 之類的網頁訪問只是伺服器在發送 HTML 格式的內容之前需要先執行一下相應的文件里的程序,得到 HTML 格式的內容之後再發送而已,原理上還是發送完就關閉與請求者的連接。
伺服器能得到的信息是接收來訪者發來的網頁請求信息的時候隨同而來的IP地址,至於這個IP地址對應的用戶什麼時候跳轉去看別的網站的網頁去了伺服器得不到任何信息。在你的 PHP 程序中,可以把得到一個來訪者的IP地址的時候就給作為一個累加器用的跨網頁文件跨不同來訪者共享的變數添加1,20分鍾之內沒再接收到那個IP地址發來的請求就將累加器減1,這樣,你把那個累加器內容顯示出來就能反映你的網站在最近20分鍾內有多少個IP來訪問過,這個數就近似地反映了你的網站「在線人數」。

B. php中如何實現統計瀏覽人數~不能重復刷新

用cookies記住客戶端對應的session ID,並且給session設置生命周期,確保唯一性,接下來就可以做判斷了,是否已經訪問過。

C. PHP如何統計在線人數

原理:根據不同的IP統計出當前有多少人在線。
實現方式:可以用資料庫,也可以用文本。
我這里用了文本實現。


$user_online="count.php";//保存人數的文件
touch($user_online);//如果沒有此文件,則創建
$timeout=30;//30秒內沒動作者,認為掉線
$user_arr=file_get_contents($user_online);
$user_arr=explode('#',rtrim($user_arr,'#'));
print_r($user_arr);
$temp=array();
foreach($user_arras$value){
$user=explode(",",trim($value));
if(($user[0]!=getenv('REMOTE_ADDR'))&&($user[1]>time())){//如果不是本用戶IP並時間沒有超時則放入到數組中
array_push($temp,$user[0].",".$user[1]);
}
}
array_push($temp,getenv('REMOTE_ADDR').",".(time()+($timeout)).'#');//保存本用戶的信息
$user_arr=implode("#",$temp);
//寫入文件
$fp=fopen($user_online,"w");
flock($fp,LOCK_EX);//flock()不能在NFS以及其他的一些網路文件系統中正常工作
fputs($fp,$user_arr);
flock($fp,LOCK_UN);
fclose($fp);
echo"當前有".count($temp)."人在線";

D. PHP中如何使用一維數組統計各分數段的學生人數

很簡單,數組遍歷一遍。遍歷的同時,進行if判定>90,n1++,else 大於80 n2+最後輸出n1,n2,n3,n4...

E. php如何統計 不同角色的人數

通常這種如果三種角色的信息都是放在一張表裡的話,
是通過一個欄位來區分的,
像加個 role 欄位,
1代表管理員, 2代表教師, 3代表學生
然後管理頁面,想取管理員就 where role = 1,
大概就這樣,
統計人數就直接,
select role,count(*) as count from table group by role;
會查出每一種角色對應的人數總數,
以上,

F. php如何實現分別統計網站的在線人數(如管理員,遊客,會員),越詳越好!

實現刷新在線用戶列表,思路建立一個Session臨時表 每次用戶登陸就寫入用戶的 ID 級別 臨時時間 等 重點在臨時時間的欄位數據,寫入之後用戶每次刷新頁面或者打開新頁面就更新Session表裡的用戶數據 步驟是先刪除5分鍾之內沒有操作的用戶,利用臨時時間欄位來判斷 刪除後剩下的就是在線的用戶,很簡單, 總體就是 記錄 更新 刪除 獲取PS:這個超時時間你可以根據自己網站的情況設置

G. 怎麼用php計算當前在線人數

計算當前在線人數--用文本實現

<?php
//首先你要有讀寫文件的許可權
//本程序可以直接運行,第一次報錯,以後就可以

$online_log = "count.dat"; //保存人數的文件,

$timeout = 30;//30秒內沒動作者,認為掉線

$entries = file($online_log);

$temp = array();

for ($i=0;$i<count($entries);$i++) {

$entry = explode(",",trim($entries[$i]));

if (($entry[0] != getenv('REMOTE_ADDR')) && ($entry[1] > time())) {

array_push($temp,$entry[0].",".$entry[1]."\n"); //取出其他瀏覽者的信息,並去掉超時者,保存進$temp

}

}

array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout))."\n"); //更新瀏覽者的時間

$users_online = count($temp); //計算在線人數

$entries = implode("",$temp);

//寫入文件

$fp = fopen($online_log,"w");

flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些網路文件系統中正常工作

fputs($fp,$entries);

flock($fp,LOCK_UN);

fclose($fp);

echo "當前有".$users_online."人在線";

?>

H. PHP中統計各分數段的學生人數

foreach
switch

I. 如何用PHP+MYsql 統計在線人數

在你頁面的session 處理中,退出機制中處理,

J. 我想用php製作一個在線聊天室,怎麼統計在線人數啊

根據會話數來統計在線人數.
一般是這樣的,在資料庫中記錄每個用戶的會員數據,並且用戶的每一次動作都update他的最後動作時間.那麼統計在線人數就是統計某段時間內有動作的用戶即可.一般5分鍾或者10分鍾.
上面是靠用戶自己的操作來更新在線時間的.你也可以在用戶停留的頁面弄個JS,隔個2分鍾就做個ajax請求,自動更新用戶的最後的在線時間,
ps 如果你不想修改session存到mysql,memcached等裡面,則可以根據session_id()來獲取PHPSESSID來作為身份標識,
然後要在程序中寫上隨機刪除過期很久了的會話.

至於聊天記錄.你肯定是要保存在伺服器端的,至於讀取.可以通過AJAX幾秒來獲取一次資料庫裡面的內容,當然,在獲取記錄的時候,你需要記錄你獲取的時間,然後下次獲取的時候只呀這個時間後的,如果有數據,則追加到當前聊天記錄後面,否則保持不變.

熱點內容
邏輯錯誤預編譯可以檢查出來嗎 發布:2024-04-20 15:58:28 瀏覽:1000
mc中國版伺服器地址 發布:2024-04-20 15:33:13 瀏覽:411
手機修改wifi密碼網站是什麼 發布:2024-04-20 15:22:05 瀏覽:323
js源碼下載 發布:2024-04-20 15:05:16 瀏覽:20
編譯翻譯的區別 發布:2024-04-20 14:55:53 瀏覽:894
登錄之後qq密碼要在哪裡看 發布:2024-04-20 14:55:03 瀏覽:731
天龍多開腳本 發布:2024-04-20 14:53:05 瀏覽:771
同一段代碼編譯的長度不同 發布:2024-04-20 14:24:14 瀏覽:380
緩存美劇權力的游戲 發布:2024-04-20 14:16:52 瀏覽:988
如何刪除word文件保存密碼 發布:2024-04-20 14:15:18 瀏覽:825