顯示在線用戶_第1頁
顯示在線用戶_第2頁
顯示在線用戶_第3頁
顯示在線用戶_第4頁
顯示在線用戶_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、編程思路在社區(qū)、論壇中,我們常能看到當前在線的會員,使訪問者有賓至如歸之感。但這種程序是怎么做出來的呢?流程如下:建表user,保存注冊用戶信息。字段 類型 備注 userid Int(10 用戶序列號 auto_increment  關(guān)鍵字 username Varchar(50 用戶匿稱 userpwd Varchar(50 密碼 email Varchar(50 電子信箱 oicq Varchar(50 OICQ號 signature mediumtext 簽名 imgurl Varchar(50 頭像 joindate Varchar(50 加入時間 建類文件user.php

2、 定義函數(shù)exist($username確認新注冊用戶是不是已經(jīng)存在insert($username,$userpwd,$email,$oicq,$imgurl,$signature插入注冊用戶update($userid,$username,$userpwd,$email,$oicq,$imgurl,$signature 更新用戶數(shù)據(jù)get_from_condition($con 返回滿足查詢條件的記錄集建表session。當用戶登錄時即向此表插入新記錄,離開或超時后刪除記錄,保證表中保存的是當前在線的用戶。字段 類型 備注 sessionid Int(10 序列號 auto_increme

3、nt  關(guān)鍵字 userid Int(10 用戶序列號取自user表 ipaddress Varchar(50 Ip地址 lastactivity Int(10 最后活動時間,用它來判斷用戶是否還在線 建類文件session.php 定義函數(shù)insert($userid,$ipaddress,$lastactivity 把登錄成功的用戶插入到表中update($userid,$ipaddress,$lastactivity更新在線用戶最后活動時間del($con刪除滿足條件的用戶,用它來清除離線用戶get_from_condition($con 返回滿足查詢條件的記錄集公用文件glo

4、bal.phpinclude "class/config.inc.php" /把配置文件包含進來$db = new db;$db-> db_connect( ; /連接數(shù)據(jù)庫$user = new user; /初始化$session = new session;/啟動會話session_start(;/刪除session表中已經(jīng)過期的用戶(即非在線網(wǎng)友)因為此文件總是被調(diào)用從而保證顯示的都是當前在線的用戶$curtime=time(;$con="lastactivity<$curtime"$session->del($con;/正在線

5、的網(wǎng)友需不斷更新session表中的lastactivity時間,并重新設(shè)置用戶的COOKIESif ($HTTP_SESSION_VARS"online"="on" /此處也可用$_SESSION“online”$userid=$HTTP_SESSION_VARS"userid" /取當前在線用戶的userid$ipaddress=substr($REMOTE_ADDR,0,50;$lastactivity=time(+3600; /更新最后活動時間,如時一個小時之內(nèi)未調(diào)動頁面就認為用戶已離線,從而會被刪除。$session->

6、;update($userid,$ipaddress,$lastactivity;else/如果未登錄那直接轉(zhuǎn)入登錄頁面$firstpage="logon.php"header ("Location: $firstpage"exit;登錄文件logon.php把global.php文件包含進來if ($hiddenField="0" /測檢表單有未被提交$con="username='$username' and userpwd='$userpwd'"$result=$user-&g

7、t;get_from_condition($con;if ($user->counter=1if (!session_is_registered("online"/檢測是否被登記過session_register("online" /登記一個新的變量為會話變量if (!session_is_registered("ccauser"session_register("ccauser"if (!session_is_registered("userid" session_register(&q

8、uot;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-

9、>counter=1$session->update($userid,$ipaddress,$lastactivity; /如存在,更新else$session->insert($userid,$ipaddress,$lastactivity; /如不存在,插入/在客戶機設(shè)置COOKIESSetCookie("ccauser",$username,time(+3600;Header("Location:test.php"/然后導向測試頁?>if($HTTP_SESSION_VARS"online"="

10、" /判斷是否已登錄?>/下面是登錄的表單名稱: 密碼: 提交">重置">elseecho "網(wǎng)友:".$HTTP_COOKIE_VARS"ccauser"."你已經(jīng)登錄了" /如果已登錄則顯示提示$str="退出社區(qū)"echo $str;?>測試文件test.phpinclude "global.php" /把global.php文件包含進來$strWelcome="歡迎".$_SESSION'ccauser&#

11、39;.""echo $strWelcome; /顯示歡迎信息$str=” 當前在線用戶:=”;$con=" 1=1"/提出session表中所有記錄即是當前在線用戶,未把游客算在內(nèi)$result=$session->get_from_condition($con;while($row=mysql_fetch_array($result$con1="userid=$rowuserid"$user->get_from_condition($con1;$str.=$user->username." "echo $str;?>退出社區(qū)退出文件exit.phpinclude "global.php" /把global.php文件包含進來if ($_S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論