db层: 
db_online.php //该函数使用户自己在线,并且检查其他用户的在线情况 
function checkOnline($userid,$tempid=null) 

$conn = connect(); //对于所有用户 
//先设置自己为在线 
$stmt = "UPDATE ".DB_NAME.".USER SET IsOnline='Y' WHERE UserID=".$userid; 
$result = query($stmt,$conn); 
//info($stmt); 
//如果当前用户是游客 
if ($tempid != null) 

$stmt = "SELECT TempID FROM ".DB_NAME.".TEMPUSER WHERE TempID=".$tempid; 
$result = query($stmt,$conn); 
//info($stmt); 
//如果该游客还在线 
if ($row = fetch_array($result)) 

$stmt = "UPDATE ".DB_NAME.".TEMPUSER SET RequestTime='".getCurrentTime()."' WHERE TempID=".$tempid; 
$result = query($stmt,$conn); 
//info($stmt); 

//该游客已经离线 
else 

$stmt = "INSERT INTO ".DB_NAME.".TEMPUSER VALUES('".$tempid."','".getCurrentTime()."')"; 
$result = query($stmt,$conn); 
//info($stmt); 

} //查看其他用户 
//普通用户 
$stmt = "UPDATE ".DB_NAME.".USER SET IsOnline='N' WHERE ".time()." - unix_timestamp(RequestTime) > ".ONLINE_DURATION." AND UserGroupID != ".GUEST; 
$result = query($stmt,$conn); //游客 
$stmt = "DELETE FROM ".DB_NAME.".TEMPUSER WHERE ".time()." - unix_timestamp(RequestTime) > ".ONLINE_DURATION; 
$result = query($stmt,$conn); 
disconnect($conn); 
} //得到在线人数,分用户和游客 
function getOnlineNumber() 

$olnum = array(); 
$conn = connect(); 
$stmt = "SELECT COUNT(UserID) FROM ".DB_NAME.".USER WHERE IsOnline='Y' AND UserGroupID != 4"; //4 为guest的用户组id 
//info ($stmt); 
$result = query($stmt,$conn); 
$olnum['user'] = result($result,0,"COUNT(UserID)"); 
$stmt = "SELECT COUNT(TempID) FROM ".DB_NAME.".TEMPUSER"; 
//info ($stmt); 
$result = query($stmt,$conn); 
if ($row = fetch_array($result)) 

$olnum['guest'] = $row['COUNT(TempID)']; 

disconnect($conn); 
return $olnum; 
} 其中的connect(), disconnect(), query(),fetch_array()函数在dbmanager.inc.php中 
dbmanager.inc.php define("DB_NAME","databasename"); 
define("DB_USER","user"); 
define("DB_PASS","pass"); 
define("DB_HOST","localhost"); function connect() 

//echo "Connecting to Host:".HOST."<br>"; 
$conn = mysql_connect(DB_HOST,DB_USER,DB_PASS); 
mysql_select_db(DB_NAME); 
/* 
if ($conn) 

echo "Connect to database sucessfully. connection id:".$conn."<br>"; 

else 

echo "Connect to database failed.<br>"; 

*/ 
return $conn; 
} function pconnect() 

return mysql_pconnect(DB_HOST,DB_USER,DB_PASS); 
} function disconnect($conn) 

$close = mysql_close($conn); 
/* 
if ($close) 
echo "MySQL Database disconnected.<br>"; 
else 
echo "MySQL Database disconnecting failed. Please try again.<br>"; 
*/ 
} function query($stmt,$conn) 

return mysql_query($stmt,$conn); 
} function fetch_array($result) 

return mysql_fetch_array($result); 
} function fetch_row($result) 

return mysql_fetch_row($result); 
} function num_rows($result) 

return mysql_num_rows($result); 
} function result($result,$row,$field) 

return mysql_result($result,$row,$field); 

rule层: 
rl_online.php 
function getOnline() 

if ($userid == 2) 

if (session_is_registered("tempuserid")) 

checkOnline($userid,$tempuserid); 


else 

checkOnline($userid); 

return getOnlineNumber(); 
} ui层: 
ui_online.php 
$online_num = getOnline(); 
echo "在线人数,注册用户".$online_num['user']."人,游客".$online_num['guest']."人";