导航:首页 > 编程语言 > 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用户在线时长相关的资料

热点内容
php开源留言板 浏览:49
新乡市区疫情怎么查询app 浏览:158
我的世界服务器怎么弄图 浏览:999
vc6的编译框 浏览:198
程序员写照 浏览:539
怎么退出github服务器版本 浏览:797
云服务器sip 浏览:910
对称平衡型压缩机 浏览:953
rust连接什么服务器 浏览:382
php删除数组的空元素 浏览:74
有什么古今翻译的app 浏览:54
华为平板里的app热门推荐怎么关闭 浏览:731
kindle可以看pdf吗 浏览:620
小米文件夹变小 浏览:324
为什么安卓系统不设计横屏 浏览:686
myeclipse编译文件 浏览:586
水果解压视频教程 浏览:207
单片机控制的大一点的车 浏览:640
程序员中的荣誉 浏览:272
java的封装性 浏览:387