導航:首頁 > 編程語言 > php用戶在線時長

php用戶在線時長

發布時間:2022-06-19 02:25:45

php 如何得到訪問者在當前頁面的停留時長

當打開頁面時,PHP記錄IP和訪問時間
關閉頁面時,做個onunload事件,這個事件就是給PHP發送關閉a.html的請求,這時候PHP做
關閉時間-訪問時間=停留時間

不包括一些特殊情況,如:斷電導致關閉瀏覽器、不支持JS等特殊情況。

-------
簡單寫一個,也沒經過測試,你自己試下吧

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>javascript</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<body onunload="unOnlineTime()">
<img src="online.php?action=online" style="display:none;" id="onlineImg" />
<script language="javascript">
function unOnlineTime()
{
//online.php頁面做判斷,如果是online就是訪問了,unonline就是退出訪問狀態,由onunload事件發送請求
//當然也可以用AJAX做
document.getElementById('onlineImg').src = 'online.php?action=unonline';
}
</script>
</body>
</html>

Ⅱ PHP網站中,如何判斷用戶是否是在線的狀態

普通http網站是一種無狀態連接,每次一個請求,一個應答,沒有長連接狀態。

但是可以通過記錄訪問時間,來確定用戶的狀態。

  1. 用戶登錄後,每次訪問,更新一下最近訪問時間在資料庫里

  2. 在用戶頁面的公共部分,做一個定時輪詢,n秒一次(防止用戶打開頁面後放著不動,看資料或者做別的)

  3. 伺服器端做一個定時,將最近時間在n秒內的用戶設為在線狀態,將最近時間大於n秒的(說明已經關了頁面),設為離線狀態。 如果是普通 web空間無法配置定時器,可以在每次用戶訪問時處理一次(如果用戶量大,需要做時間判斷,防止同時訪問量多時多次重復處理,影響伺服器性能)

  4. 如果能確定一個用戶的訪問,只有一個瀏覽器窗口,可以在窗口裡加一個關閉事件(onbeforeunload),在此事件中發送一個退出請求,主動設為離線狀態。這樣狀態管理會更完美一些

這樣基本就可以完成一個在線狀態的管理。具體n 設為多少可根據情況而定,一般5-30秒都是合理的,太短了伺服器壓力比較大,太長了誤差會比較大

Ⅲ php中如何設置session時長,使得用戶登錄一次之後保證3天內不用重復登陸

你好,首先你得搞清楚session的機制,

你的session 時間哪怕你設置10年,只要用戶一關瀏覽器那你的session就失效了.

session 是運行在伺服器端的.

你的這個需求3天內不用再登錄只能用cookie來做了,

cookie運行在客戶端,但是用戶清理了cookie的話此功能就會失效

Ⅳ 請問PHP+MYSQL的網站,注冊用戶在五萬,每天登陸一次的用戶在80%且停留時間比較長,網站伺服器該如何布局

兩台戴爾R710即可,一台做web,一台做資料庫,伺服器帶寬50m差不多夠用。
需要託管伺服器的話可以找我

Ⅳ 用php如何實現統計用戶在線登陸的時間

用戶每做一個動作記錄當時的時間和上一個動作的時間差 ...

之後為用戶添加相應的時間積分就可以了 ...

Ⅵ php如何利用session和mysql資料庫來統計用戶在線時常

您好,很高興回答您的問題,希望我的回答能幫助到您,蟹蟹

用戶在線時長計算,首先,用戶登錄成功把登錄時間以及用戶id保存在session中

當用戶退出時,當前時間減去登錄時間就是用戶在線時長

//用戶登錄
publicfunctiondologin(){
$adminname=I("param.adminname","","trim");//用戶名
$password=I("param.password","","trim");//密碼
$where="adminname='{$adminname}'andpassword=md5('{$password}')";
$data['login_time']=time();
$is_find=M("users_admin")->where($where)->find();
if($is_find){
$result=M("users_admin")->where($where)->setField($data);
if($result){
$_SESSION['uid']=$is_find['id'];
$_SESSION['login_time']=$data['login_time'];
echo("登錄成功");
}
}
}
//用戶退出代碼
publicfunctionlogout(){
$login_time=$_SESSION['login_time'];
$now=time();
$line_time=$now-$login_time;
$result=M("users_admin")->where("id=".$_SESSION['uid'])->setField('line_time',$line_time);
session(null);
echo("成功退出");
}

Ⅶ php中如何統計用戶在線時長

可以通過session記錄。
從創建該用戶session(用戶登錄)到刪除其session(用戶退出),計算出時間,寫入資料庫進行統計。

Ⅷ 請問PHP的在線學習時間統計功能如何實現(例:上次學習了10分鍾,這次學習了20分鍾15秒,那麼如何讓這兩次

相加就好了,每個值存在一個變數里。

Ⅸ 求助關於PHP,用戶登陸後長時間未操作,自動注銷,該怎麼做謝謝!

如果你對session生命周期不了解的話
可以用最底層的代碼寫
給你個思路
先用session保存用戶這次登錄時間 $_SESSION[『ptime』]= time();
然後寫個判斷就OK如果你想在半個小時後自動退出
$nowTime=time();
if($nowTime-$_SESSION['ptime']>30*60){
//注銷SESSION;再寫個跳轉或者提示 就OK了
}

Ⅹ PHP用心跳機制計算用戶頁面的停留時長,沒接觸過,有誰能給個源碼案例,或者給個好的思路也行

先用javascript的秒錶功能一直計時,然後每次更新後的時間都存入本地的資料庫,也就是local.Storage
做一個setTimeout 用來每20分鍾alert,
然後 當 刷新頁面的時候,就會檢查local.storage裡面有沒有值,如果有的話
就從當前的值開始計時,就達到了繼續計時的效果

閱讀全文

與php用戶在線時長相關的資料

熱點內容
重慶伺服器租用哪裡有雲伺服器 瀏覽:453
土星模擬器文件夾 瀏覽:902
文件夾文件袋文件盒 瀏覽:695
雲伺服器打開f8指令 瀏覽:243
盈透證券加密幣 瀏覽:72
阿里雲伺服器初始密碼怎麼修改 瀏覽:266
伺服器怎麼設定公用網路 瀏覽:99
程序員自己嘗尿檢測出糖尿病 瀏覽:593
列印添加pdf 瀏覽:932
蘋果解壓專家賬號 瀏覽:842
度曉曉app為什麼關閑 瀏覽:228
net文件是偽編解碼嗎 瀏覽:149
伴隨矩陣的matlab編程 瀏覽:63
單片機和h橋是什麼意思 瀏覽:314
51單片機光控設計論文 瀏覽:653
渦旋式壓縮機無油 瀏覽:731
企業網搭建及應用pdf 瀏覽:744
symanteclinux 瀏覽:879
程序員朋友化妝改造 瀏覽:493
應用被加密但不知道密碼 瀏覽:586