Ⅰ 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網站是一種無狀態連接,每次一個請求,一個應答,沒有長連接狀態。
但是可以通過記錄訪問時間,來確定用戶的狀態。
用戶登錄後,每次訪問,更新一下最近訪問時間在資料庫里
在用戶頁面的公共部分,做一個定時輪詢,n秒一次(防止用戶打開頁面後放著不動,看資料或者做別的)
伺服器端做一個定時,將最近時間在n秒內的用戶設為在線狀態,將最近時間大於n秒的(說明已經關了頁面),設為離線狀態。 如果是普通 web空間無法配置定時器,可以在每次用戶訪問時處理一次(如果用戶量大,需要做時間判斷,防止同時訪問量多時多次重復處理,影響伺服器性能)
如果能確定一個用戶的訪問,只有一個瀏覽器窗口,可以在窗口裡加一個關閉事件(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裡面有沒有值,如果有的話
就從當前的值開始計時,就達到了繼續計時的效果