程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php實現在線用戶計算

php實現在線用戶計算

編輯:關於PHP編程

include "class/config.inc.php"; //把配置文件包含進來
$db = new db;
$db-> db_connect( ); //連接數據庫
$user = new user; //初始化
$session = new session;
//啟動會話
session_start();
//刪除session表中已經過期的用戶(即非在線網友)因為此文件總是被調用從而保證顯示的都是當前在線的用戶
$curtime=time();
$con="lastactivity<$curtime";
$session->del($con);
//正在線的網友需不斷更新session表中的lastactivity時間,並重新設置用戶的COOKIES
if ($HTTP_SESSION_VARS["online"]=="on"){ //此處也可用$_SESSION[“online”]
$userid=$HTTP_SESSION_VARS["userid"]; //取當前在線用戶的userid
$ipaddress=substr($REMOTE_ADDR,0,50);
$lastactivity=time()+3600; //更新最後活動時間,如時一個小時之內未調動頁面就認為用戶已離線,從而會被刪除。
$session->update($userid,$ipaddress,$lastactivity);
}else{
//如果未登錄那直接轉入登錄頁面
$firstpage="logon.php";
header ("Location: $firstpage");
exit;
}

insert($userid,$ipaddress,$lastactivity) 把登錄成功的用戶插入到表中
update($userid,$ipaddress,$lastactivity)更新在線用戶最後活動時間
del($con)刪除滿足條件的用戶,用它來清除離線用戶
get_from_condition($con) 返回滿足查詢條件的記錄集

if ($hiddenField=="0"){ //測檢表單有未被提交
$con="username='$username' and userpwd='$userpwd'";
$result=$user->get_from_condition($con);
if ($user->counter==1){
if (!session_is_registered("online")){//檢測是否被登記過
session_register("online"); //登記一個新的變量為會話變量
}
if (!session_is_registered("ccauser")){
session_register("ccauser");
}
if (!session_is_registered("userid")){
session_register("userid");
}
$ccauser=$username; //給會話變量賦值
$online="on"; //這個變量在global.php用到以更新最後活動時間lastactivity
$userid=$user->userid;
$ipaddress=substr($REMOTE_ADDR,0,50);
$lastactivity=time()+3600;
$con=" userid=$userid";
$session->get_from_condition($con);
//判斷會話是否存在,有可能你在不同的機器上登兩次。
if ($session->counter==1){
$session->update($userid,$ipaddress,$lastactivity); //如存在,更新
}else{
$session->insert($userid,$ipaddress,$lastactivity); //如不存在,插入
}
//在客戶機設置COOKIES
SetCookie("ccauser",$username,time()+3600);
Header("Location:test.php");//然後導向測試頁
}
}
?>
if($HTTP_SESSION_VARS["online"]=="") { //判斷是否已登錄
?>
//下面是登錄的表單

名稱:
密碼:

 


}else{
echo "網友:".$HTTP_COOKIE_VARS["ccauser"]."你已經登錄了"; //如果已登錄則顯示提示
$str="

退出社區";
echo $str;
}
?>

include "global.php"; //把global.php文件包含進來
$strWelcome="歡迎".$_SESSION['ccauser']."
";
echo $strWelcome; //顯示歡迎信息
$str=” 當前在線用戶:
===================
”;
$con=" 1=1";
//提出session表中所有記錄即是當前在線用戶,未把游客算在內
$result=$session->get_from_condition($con);
while($row=mysql_fetch_array($result)){
$con1="userid=$row[userid]";
$user->get_from_condition($con1);
$str.=$user->username." ";
}
echo $str;
?>

退出社區

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved