a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > PHP > 正文

php如何計算用戶在線時間

2020-04-27 18:57:55
字體:
來源:轉載
供稿:網友

    php計算用戶在線時長的幾種方法:
   
    下面是計算用戶在線時長的幾種常用的方法,根據不同情況可做相應的選擇:
   
    首先介紹一下所涉及的數據表結構,四個字段:
   
    uid<int(10)> :用戶id
   
    session_id<varchar(40)> :用戶登錄后系統產生的session_id,PHP可是使用session_id()函數獲取
   
    login_time<int(10)> :登錄時間
   
    logout_time<int(10)> :登出時間
   
    1. 服務器設定一個定時輪詢的腳本。這個方法是在服務器端 寫一個定時執行的腳本,比如5分鐘執行一次,根據數據庫中的記錄來判斷每個會話的session_id是否還存在于服務器上,如果存在就更新 logout_time,不存在就跳過。這樣也能比較準確的統計在線時間,不過缺點是需要有服務器的控制權,不然無法設定定時腳本,linux系統可以通過crontab實現,windows系統可以通過計劃任務來完成。如果你只是買的虛擬主機,那么這個方法也同樣不適合你。
   
    2. 客戶端定時發送請求到服務器端。實現方法是在用戶登錄后,將uid,session_id,login_time插入一條記錄,然后在客戶端js設定一個 計時器,比如每10分鐘向服務器端發送一個請求,以此來達到更新登出時間的目的,當然這個間隔時間設定的越短,數據可能會越準確,不過相應的系統的負載也 會越高,這個可以根據實際情況設定一個合適的值。這種方法廣泛應用于webgame上,因為webgame的幾乎所有請求都是ajax請求,不用刷新頁 面,一旦刷新頁面,這個計時器就失去了價值,這也是這個方法的局限性。
   
    3. 在用戶每次活動時更新一下登出時間。這樣在用戶不活動或者退出的時候,登出時間就自然而然的存在于數據庫里了,這也是本文著重討論的方案。下面給出實現方法。
   
    首先,在用戶登錄成功后,記錄下其uid,session_id,并將現在時間作為登陸時間,現在時間+600s作為登出時間,插入數據庫。
   
    <?php
   
    $uid = $_SESSION['uid'] = $info['id'];
   
    $session_id = $_SESSION['session_id'] = session_id();
   
    $login_time = time();
   
    $logout_time = time()+600;
(責任編輯:VEVB)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品一区二区三区99 | 国产最新地址 | 蜜桃视频麻豆女神沈芯语免费观看 | 日本aⅴ免费视频一区二区三区 | 999久久久国产999久久久 | 爱啪导航一精品导航站 | 国产一区二区免费 | av超碰| 91免费观看 | 欧美三级不卡 | 日日夜夜爽| 欧美日韩精品 | 久久久久国产亚洲日本 | 毛片毛片毛片毛片毛片毛片毛片毛片 | 久久99精品久久久久久琪琪 | 一区二区蜜桃 | 日本三级电影天堂 | 久久久久女教师免费一区 | 午夜精品一区二区三区免费视频 | 蜜桃comaaa| 91一级| 四虎影视 | 秋霞在线一区 | 黄页网站大全在线观看 | 久草成人网 | 99久久婷婷国产综合精品 | 一级性视频 | 久久va| 一区不卡 | 欧美国产精品 | 中文字幕在线免费 | 91网站免费 | 4hu在线 | 在线99视频| 欧美.com| 少妇高潮一级毛片 | 国产成人99久久亚洲综合精品 | 欧美日韩在线视频一区二区 | av网战 | 香蕉一区二区 | 国产小视频免费观看 |