php實現線上使用者計算

來源:互聯網
上載者:User

轉貼自:http://www.webwoo.net/PHP/PHPshili/200902/06-31148.html 

  

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;
?>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.