当前位置:Linux教程 - Php - 怎样实现在线用户列表

怎样实现在线用户列表

PHP代码:--------------------------------------------------------------------------------

<?
#
# Author: Marco(hkfuk)
#
# Contact: [email protected]
#
$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秒內沒有動作的用戶
?>

--------------------------------------------------------------------------------










PHP代码:--------------------------------------------------------------------------------
# phpMyAdmin MySQL-Dump
# version 2.3.2
# <a href="http://www.phpmyadmin.net/" target="_blank">http://www.phpmyadmin.net/</a> (download page)
#
# 主机: localhost
# 建立日期: Jul 09, 2003 at 03:24 PM
# 服务器版本: 3.23.56
# PHP 版本: 4.3.1
# 数据库 : `script`
# --------------------------------------------------------

#
# 数据表的结构 `online_list`
#

CREATE TABLE online_list (
  ttime varchar(20) NOT NULL default '',
  username varchar(20) NOT NULL default '',
  userip varchar(20) NOT NULL default '',
  online_time varchar(20) NOT NULL default '',
  second_time varchar(20) NOT NULL default ''
) TYPE=MyISAM COMMENT='online_list测试程式';

--------------------------------------------------------------------------------


见笑了,我是菜菜。UNIX时间戳记我不会转成标准时间,所以擅作主张加了个ttime字段记录登陆时间.. 其他问题还是问 xltxlm 吧
:-)