当前位置:首页> PHP教程> PHP精通
关键字
文章内容
怎样实现在线用户列表?
 
 
修改时间:[2011/11/06 19:16]    阅读次数:[847]    发表者:[起缘]
 
PHP代码:



<?

#

# Author: Marco(hkfuk)

#

# Contact: Crazy_Marco@msn.com

#

$host="localhost";//mysql的host

$user="root";//mysql的用戶名稱

$pw="";//mysql的密碼

$db="";//mysql資料庫名稱

$update_time="30";//更新的頻率---秒数

session_start();

if(!
$_SESSION['name'])session_register("name");

############################################

$con=mysql_connect($host,$user,$pw)or die("不可以連接資料庫");

$now=time();

mysql_select_db($db,$con)or die("錯誤的資料庫$db");

if(!empty(
$name)){//如果用戶已經登入了

$query=mysql_query("select count(username) from online_list where username='$name'",$con);//查詢在線到表是否已經有用戶的名稱

$result=mysql_result($query,0);//查詢的結果

if($result!=0){//如果用戶已經在在線列表了

@mysql_query("update online_list set second_time='$now' where username='$name'",$con);//更新用戶的最後在線時間

}else{//如果用戶已經不在在線列表

@mysql_query("insert into online_list(username,userip,online_time,second_time)values('$name','$REMOTE_ADDR','$now','$now')",$con);//新增一個用戶到在線列表

}

}



else{
//如果用戶沒有登入

$query=mysql_query("select count(userip) from online_list where userip='$REMOTE_ADDR'",$con);//查詢在線到表是否已經有訪客的ip 地址

$result=mysql_result($query,0);//查詢的結果

if($result!=0){//如果訪客的ip地址已經在在線列表了

@mysql_query("update online_list set second_time='$now' where userip='$REMOTE_ADDR'",$con);//更新訪客的最後在線時間

}else{//如果用戶列表沒有訪客的ip地址

@mysql_query("insert into online_list(username,userip,online_time,second_time)values('訪客','$REMOTE_ADDR','$now','$now')",$con);//新增一個訪客到在線列表

}

}

$del_time=$now-$update_time;

@
mysql_query("delete from online_list where second_time<$del_time",$con);//刪除在$update_time秒內沒有動作的用戶

?>