真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php在線人數(shù)數(shù)據(jù)庫設(shè)計 php統(tǒng)計在線人數(shù)

php 如何做在線人數(shù)統(tǒng)計

兩種方案:1,每上線一個人就向數(shù)據(jù)庫寫入一次數(shù)據(jù),然后定期做回收。2,利用數(shù)據(jù)庫儲存session。目前看來,第二種更簡單實(shí)用

成都做網(wǎng)站、成都網(wǎng)站建設(shè)的開發(fā),更需要了解用戶,從用戶角度來建設(shè)網(wǎng)站,獲得較好的用戶體驗(yàn)。創(chuàng)新互聯(lián)建站多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見的多,溝通容易、能幫助客戶提出的運(yùn)營建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇創(chuàng)新互聯(lián)建站,不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價值服務(wù)。

PHP中如何實(shí)現(xiàn)在線人數(shù)的統(tǒng)計和顯示

要使用數(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";

PHP 在線人數(shù)統(tǒng)計 我的想法:建一個在線用戶數(shù)據(jù)表。

“用戶退出或者關(guān)閉瀏覽器SESSION消失的時候在線用戶表刪除相對應(yīng)的數(shù)據(jù)”

這里不可行。。服務(wù)器沒辦法獲取這個信息的。都是被動請求的。

要換個思路,要用js或者其它方式定時觸發(fā)刪除。。

一般15分鐘或者30分鐘。。

數(shù)據(jù)庫還要記錄IP,記錄最近一次觸發(fā)時間。

PHP+MYSQL實(shí)例--網(wǎng)站在線人數(shù)的程序統(tǒng)計代碼

首先是創(chuàng)建MYSQL數(shù)據(jù)庫表。

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"; //你的服務(wù)器

db_user = "root"; //你的mysql的用戶名

db_pass = "password"; //你的mysql的密碼

database = "users"; //表的名字

設(shè)置統(tǒng)計的時間(多少秒內(nèi)在線人數(shù))

timeoutseconds = 300;

取當(dāng)前時間。

timestamp = time();

我想用php制作一個在線聊天室,怎么統(tǒng)計在線人數(shù)啊?

根據(jù)會話數(shù)來統(tǒng)計在線人數(shù).

一般是這樣的,在數(shù)據(jù)庫中記錄每個用戶的會員數(shù)據(jù),并且用戶的每一次動作都update他的最后動作時間.那么統(tǒng)計在線人數(shù)就是統(tǒng)計某段時間內(nèi)有動作的用戶即可.一般5分鐘或者10分鐘.

上面是靠用戶自己的操作來更新在線時間的.你也可以在用戶停留的頁面弄個JS,隔個2分鐘就做個ajax請求,自動更新用戶的最后的在線時間,

ps 如果你不想修改session存到mysql,memcached等里面,則可以根據(jù)session_id()來獲取PHPSESSID來作為身份標(biāo)識,

然后要在程序中寫上隨機(jī)刪除過期很久了的會話.

至于聊天記錄.你肯定是要保存在服務(wù)器端的,至于讀取.可以通過AJAX幾秒來獲取一次數(shù)據(jù)庫里面的內(nèi)容,當(dāng)然,在獲取記錄的時候,你需要記錄你獲取的時間,然后下次獲取的時候只呀這個時間后的,如果有數(shù)據(jù),則追加到當(dāng)前聊天記錄后面,否則保持不變.

PHP如何統(tǒng)計在線人數(shù)

原理:根據(jù)不同的IP統(tǒng)計出當(dāng)前有多少人在線。

實(shí)現(xiàn)方式:可以用數(shù)據(jù)庫,也可以用文本。

我這里用了文本實(shí)現(xiàn)。

$user_online?=?"count.php";?//?保存人數(shù)的文件

touch?(?$user_online?);?//?如果沒有此文件,則創(chuàng)建

$timeout?=?30;?//?30秒內(nèi)沒動作者,認(rèn)為掉線

$user_arr?=?file_get_contents?(?$user_online?);

$user_arr?=?explode?(?'#',?rtrim?(?$user_arr,?'#'?)?);

print_r?(?$user_arr?);

$temp?=?array?();

foreach?(?$user_arr?as?$value?)?{

$user?=?explode?(?",",?trim?(?$value?)?);

if?(($user?[0]?!=?getenv?(?'REMOTE_ADDR'?))??($user?[1]??time?()))?{?//?如果不是本用戶IP并時間沒有超時則放入到數(shù)組中

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以及其他的一些網(wǎng)絡(luò)文件系統(tǒng)中正常工作

fputs?(?$fp,?$user_arr?);

flock?(?$fp,?LOCK_UN?);

fclose?(?$fp?);

echo?"當(dāng)前有"?.?count?(?$temp?)?.?"人在線";


文章標(biāo)題:php在線人數(shù)數(shù)據(jù)庫設(shè)計 php統(tǒng)計在線人數(shù)
標(biāo)題來源:http://weahome.cn/article/hjschj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部