php服务器管理用户离线时间(php服务器管理用户离线时间过长)

本文目录一览:

php利用session怎么判断用户已离线

方法有好多种,但应该都跟心跳请求类似。

首先用户打开一个页面后,页面里面会有段js脚本来反复请求一个地址,即判断用户是否在线的地址(跟新浪微博隔一段时间请求一个地址查看是否有新消息类似)

比如判断页面为A,打开的页面为B ,则B 内的js脚本以ajax请求的方式每隔1分钟来访问A,A可以记录下最后一次的请求时间,然后你就可以拿这个最后一次请求的时间来判断用户是否离线,比如B每隔1分钟发送一次请求,如果最后活动时间与当前时间相差两分钟,就可以认为用户已离线。

还有一种方法,就是利用js的onunload事件

当用户关闭浏览器的时候,可以用onunload发送一个请求,注销掉session,或者将用户状态置为离线,都可以,不过没有上面靠谱就是,因为F5刷新页面也同样触onunload事件

方法还有很多,结合你需要实现的功能和业务,多想想就出来了

PHP如何获取本地时间与服务器时间

PHP获取服务器时间和本地时间很简单,可以用内置函数实现,具体代码如下:

记得给分!!!

?php

 //获取服务器时间

    echo date(“Y-m-d h:i:s”);

 //获取本地时间(也可以说是你所在时区时间)

    date_default_timezone_set(‘地区’); //地区:中国是PRC,或shanghai,chongqing都可

    echo date(“Y-m-d h:i:s”);

?

当然获取本地时间还可以用JS实现,如下:

script type=”text/javascript”

function showLocale(objD){

var str,colorhead,colorfoot;

var yy = objD.getYear();

if(yy1900) yy = yy+1900;

var MM = objD.getMonth()+1;

if(MM10) MM = ‘0’ + MM;

var dd = objD.getDate();

if(dd10) dd = ‘0’ + dd;

var hh = objD.getHours();

if(hh10) hh = ‘0’ + hh;

var mm = objD.getMinutes();

if(mm10) mm = ‘0’ + mm;

var ss = objD.getSeconds();

if(ss10) ss = ‘0’ + ss;

var ww = objD.getDay();

if  ( ww==0 )  colorhead=”font color=\”#000000\””;

if  ( ww  0  ww  6 )  colorhead=”font color=\”#000000\””;

if  ( ww==6 )  colorhead=”font color=\”#000000\””;

if  (ww==0)  ww=”星期日”;

if  (ww==1)  ww=”星期一”;

if  (ww==2)  ww=”星期二”;

if  (ww==3)  ww=”星期三”;

if  (ww==4)  ww=”星期四”;

if  (ww==5)  ww=”星期五”;

if  (ww==6)  ww=”星期六”;

colorfoot=”/font”

str = colorhead + yy + “-” + MM + “-” + dd + ” ” + hh + “:” + mm + “:” + ss + ”  ” + ww + colorfoot;

return(str);

}

function tick(){

var today;

today = new Date();

document.getElementById(“localtime”).innerHTML = showLocale(today);

window.setTimeout(“tick()”, 1000);

}

tick();

/script

php做用户在线与离线状态

在用户表里加个session字段存取时间戳。在文件头每次刷新就更新它。一定时间不刷新就表示人物离线了。读取这个会员数据的时候和当前时间戳对比小于一定数就离线了

怎么判断用户是在线状态还是离线状态 asp

判断用户的在线状态,后台代码必须和前台代码配合方能做到,通常前台代码用javascript编写,后台asp jsp php aspx都可以,以asp为例。

大体有两种思路。

一是即时刷新型,也就是前台每隔几秒向后台报告一下自己还在线。在后台数据库内或是Application对象中写入刷新的时间,后台管理员可以读取用户在线时间,如果超过规定的时间未刷新,则可判断用户已经离线。这种方式是使用最广泛的方式,判断准确无误,缺点是占用一定的系统资源,如果在线用户数量太多,对服务器的负荷压力比较大。

二是来去报告型。即上线报告自己来了,离线时报告自己走了,不必定时向后台报告自己是否在线,只要没报告自己离线,就认为仍然在线。技术上要依赖 DOM 的onload unload 事件,并在客户端建立cookie,在onload事件中把打开的网页数写入cookie,如cookie(“OpenPageCount”)++,只有当 cookie(“OpenPageCount”)==1 时才向后台报告自己上线,大于1只是说明多打开了几个网页而已,不必频繁向后台发送ajax请求,在unload事件中再把cookie减1,如cookie(“OpenPageCount”)–,直到为0才向后台发送离线状态ajax请求。这种方式准确率也不错,不必占用大量的服务器资源,主要工作都在客户端判断完成,缺点是兼容性不够好,笔者测试IE8+、FF等主流浏览器支持得都不错,但一些广泛使用的山寨浏览器对DOM事件支持不好,如360、遨游、TT、搜狗等。

相关关键技术点:

后台:数据库、Application对象、日期间隔

前台:javascript DOM Event Cookie setInterval

PHP服务器时间问题

date(‘Y-m-d H:i:s’)

结果取出来显示的时间总是于本地时间相差8个小时,我的本机是中国标准时间(GTM+8),问题应该是date()取的时间是格林威治时间,那应该怎么配置一下PHP服务器呢?

问题原因所在

从php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的

也就是显示的时间(无论用什么php命令)都是格林威治标准时间

和我们的时间(北京时间)差了正好8个小时。

有以下3中方法可以恢复正常的时间。

1、最简单的方法就是不要用php5.1以上的版本

2、如果一定要用,而且不能修改php.ini,则需要在关于时间的初始化的语句的

上面加上 date_default_timezone_set (‘XXX’);

3、一劳永逸,仅限能修改php.ini。打开php.ini查找date.timezone 去掉前面的分号

date.timezone = PRC,重启http服务(如apache2或iis等)即可

原创文章,作者:IUUU,如若转载,请注明出处:https://www.506064.com/n/150054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
IUUUIUUU
上一篇 2024-11-07 09:49
下一篇 2024-11-07 09:49

相关推荐

  • 解决docker-compose 容器时间和服务器时间不同步问题

    docker-compose是一种工具,能够让您使用YAML文件来定义和运行多个容器。然而,有时候容器的时间与服务器时间不同步,导致一些不必要的错误和麻烦。以下是解决方法的详细介绍…

    编程 2025-04-29
  • Python中接收用户的输入

    Python中接收用户的输入是一个常见的任务,可以通过多种方式来实现。本文将从以下几个方面对Python中接收用户的输入做详细阐述。 一、使用input函数接收用户输入 Pytho…

    编程 2025-04-29
  • 想把你和时间藏起来

    如果你觉得时间过得太快,每天都过得太匆忙,那么你是否曾经想过想把时间藏起来,慢慢享受每一个瞬间?在这篇文章中,我们将会从多个方面,详细地阐述如何想把你和时间藏起来。 一、一些时间管…

    编程 2025-04-28
  • Python弹框让用户输入

    本文将从多个方面对Python弹框让用户输入进行阐述,并给出相应的代码示例。 一、Tkinter弹窗 Tkinter是Python自带的图形用户界面(GUI)库,通过它可以创建各种…

    编程 2025-04-28
  • 计算斐波那契数列的时间复杂度解析

    斐波那契数列是一个数列,其中每个数都是前两个数的和,第一个数和第二个数都是1。斐波那契数列的前几项为:1,1,2,3,5,8,13,21,34,…。计算斐波那契数列常用…

    编程 2025-04-28
  • 时间戳秒级可以用int吗

    时间戳是指从某个固定的时间点开始计算的已经过去的时间。在计算机领域,时间戳通常使用秒级或毫秒级来表示。在实际使用中,我们经常会遇到需要将时间戳转换为整数类型的情况。那么,时间戳秒级…

    编程 2025-04-28
  • Zookeeper ACL 用户 anyone 全面解析

    本文将从以下几个方面对Zookeeper ACL中的用户anyone进行全面的解析,并为读者提供相关的示例代码。 一、anyone 的作用是什么? 在Zookeeper中,anyo…

    编程 2025-04-28
  • 如何在ACM竞赛中优化开发时间

    ACM竞赛旨在提高程序员的算法能力和解决问题的实力,然而在比赛中优化开发时间同样至关重要。 一、规划赛前准备 1、提前熟悉比赛规则和题目类型,了解常见算法、数据结构和快速编写代码的…

    编程 2025-04-28
  • 使用JavaScript日期函数掌握时间

    在本文中,我们将深入探讨JavaScript日期函数,并且从多个视角介绍其应用方法和重要性。 一、日期的基本表示与获取 在JavaScript中,使用Date对象来表示日期和时间,…

    编程 2025-04-28
  • Python中获取用户输入命令的方法解析

    本文将从多个角度,分别介绍Python中获取用户输入命令的方法,希望能够对初学者有所帮助。 一、使用input()函数获取用户输入命令 input()是Python中用于获取用户输…

    编程 2025-04-27

发表回复

登录后才能评论