php統計在線
首先是創建MYSQL資料庫表。
CREATE TABLE tablename (
field type(max_length) DEFAULT 'default_value' (NOT) NULL
}
可以使用的SQL語句。
CREATE TABLE useronline (
timestamp int(15) DEFAULT '0' NOT NULL,
ip varchar(40) NOT NULL,
file varchar(100) NOT NULL,
PRIMARY KEY (timestamp),
KEY ip (ip),
KEY file (file)
);
下面我們開始使用PHP腳本,首先定義MYSQL的信息。
server = "localhost"; //你的伺服器
db_user = "root"; //你的mysql的用戶名
db_pass = "password"; //你的mysql的密碼
database = "users"; //表的名字
設置統計的時間(多少秒內在線人數)
timeoutseconds = 300;
取當前時間。
timestamp = time();
⑵ php如何實現分別統計網站的在線人數(如管理員,遊客,會員),越詳越好!
實現刷新在線用戶列表,思路建立一個Session臨時表 每次用戶登陸就寫入用戶的 ID 級別 臨時時間 等 重點在臨時時間的欄位數據,寫入之後用戶每次刷新頁面或者打開新頁面就更新Session表裡的用戶數據 步驟是先刪除5分鍾之內沒有操作的用戶,利用臨時時間欄位來判斷 刪除後剩下的就是在線的用戶,很簡單, 總體就是 記錄 更新 刪除 獲取PS:這個超時時間你可以根據自己網站的情況設置
⑶ 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)."人在線";