好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>CMS系统>Dedecms
<tfoot draggable='sEl'></tfoot>

php用户在线判断 php或者判断

很多站长朋友们都不太清楚php用户在线判断,今天小编就来给大家整理php用户在线判断,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php中如何判断用户是否在线 2、 关于php或者JS判断用户是否已经登陆/在线?请具体demo 3、 php聊天室怎么判断用户是不是在线? 4、 php 用户是否在线 5、 PHP网站中,如何判断用户是否是在线的状态? php中如何判断用户是否在线

代码很简单,但实现逻辑自己要想明白,

网站头公共文件加下边代码,意思即每个页面都有包含下面这个php代码,总之你懂,

这样,只要有用户登陆,或者打开别的页面,就会往 all_user 表里 的action_time字段添

加操作时间, 当你检测用户是否在线,就把用户操作时间action_time转化为 几分钟前,小时前,

,知道每个用户是 几分几小时前操作,就可以把几分钟前的显示在线,而几小时前的,显示离线或几小时前,

例如用户15:30分登陆,打开几个页面,然后就关电脑或出门, 这时all_user 表已经记录了操作时间

网站可以用 wordTime($time)显示他的操作时间离现在为2分钟前,或20分钟前,将直接显示在线。

至于多少分钟不操作算离线,自己调分钟数

<?php

strtotime("now"); //取服务器当前时间戳,得到值如1533213376

$sql="UPDATE all_user SET action_time=$action_time WHERE userid=$cook_userid";

//往用户表里更新 操作时间,具体要填自己的表名和用户名的 字段名

?>

//======================下边功能代码可copy 直接用

<?php  

function wordTime($time) {

        $time = (int) substr($time, 0, 10);

        $int = time() - $time;

        $str = '';

        if ($int <= 2){

            $str = sprintf('在线', $int);

        }elseif ($int < 60){

            $str = sprintf('在线', $int);        //60秒内

         }elseif ($int < 300){

            $str = sprintf('在线5', $int);        //5分钟内

        }elseif ($int < 1800){

            $str = sprintf('在线+', floor($int / 60));       //30分钟内

        }elseif ($int < 3600){ 

            $str = sprintf('%d分钟前', floor($int / 60));        //30-60分钟内

        }elseif ($int < 86400){

            $str = sprintf('%d小时前', floor($int / 3600));

        }elseif ($int < 2592000){

            $str = sprintf('%d天前', floor($int / 86400));

        }elseif ($int < 2592000*30){

            $str = sprintf('%d月前', floor($int / 2592000));

        

        }else{

            $str = "";//date('Y-m-d', $time);

        }

   

   //调用方法,把值给到变量time 如: $time="1533213376";  echo wordTime($time);  结果将输出 20分钟前    

?>

不存在频繁操作数据库问题,因为打开网页都要查询mysql 用户名等这些,也不差这条更新命令,

关于php或者JS判断用户是否已经登陆/在线?请具体demo

可以利用cookie记录登录状态,特意写了个例子,已做过测试,仅供参考。

两个文件:login.php(登录)、question.php(提交问题)。

login.php代码如下:

<?php

if($_GET['success']){

    echo '<script>window.location.href="login.php";</script>';//firefox下cookie有延时,需要再次刷新

}

$user=$_COOKIE['user'];//取cookie中的值

$iflogin=$_COOKIE['iflogin'];

if($iflogin$user){//一小时之内不用重复登录

    if($_GET['del']){ //清除cookie

        setcookie('user','',time()-3600);

        setcookie('passwd','',time()-3600); 

        setcookie('iflogin','',time()-3600); 

        echo '<script>window.location.href="login.php";</script>';

    }

    echo $user.' wellcome, <a href="login.php?del=1">log out</a>';//登录成功的状态

}else{

if($_POST['sub']=='tijiao'){

    $user=$_POST['user'];

    $passwd=$_POST['passwd'];

    //将用户、名密码与用户表进行比对,省略……

    

    //如果正确,将登录相关信息保存到cookie中

    if($user$passwd){

        setcookie("user",$user,time()+3600);//保存用户名,一小时

        setcookie("passwd",$passwd,time()+3600);//保存密码,一小时

        setcookie("iflogin",1,time()+3600);//保存登录状态,一小时

    }

    //登录成功,刷新页面或跳转

    echo '<script>window.location.href="login.php?success=1";</script>';//成功后第一次刷新

}

?>

<form action="login.php" method="post">

username:<input type="text" name="user"/>

password:<input type="text" name="passwd"/>

<input type="submit" value="tijiao" name="sub"/>

</form>

<?php

}

?>

question.php代码如下:

<?php

if($_POST['sub']=='tijiao'){

    $q1=$_POST['q1'];

    $if_login=$_COOKIE['iflogin'];//取cookie中的登录状态

    if($if_login){

        //登录了,判断tijiao的问题无误,入库,省略……

        

        alert_msg('恭喜,tijiao成功!','question.php');//保存成功后提示并刷新

        exit();

    }

    //没登陆,提示请登录并跳转到登录页

    alert_msg('抱歉,请先登录!','login.php');

} 

//提示函数,默认不跳转,当$url有值时跳转

function alert_msg($msg,$url=''){

    if($url){

        echo '<script>alert("'.$msg.'");window.location.href="'.$url.'";</script>';

    }else{

        echo '<script>alert("'.$msg.'");</script>';

    }

}

?>

<form action="question.php" method="post">

question1:<input type="text" name="q1"/>

<input type="submit" value="tijiao" name="sub"/>

</form>

php聊天室怎么判断用户是不是在线?

聊天室肯定是登陆状态,用户表可以加个字段 比如status 登陆为1 不登陆为0 统计为1的个数

在页面写个ajax调用 每分钟调用一次 实时统计 或者每分钟刷新页面 望采纳!

php 用户是否在线

用户表新增一个字段,用于判断是否在线,

登陆的时候,将字段设置为1

退出的时候,将字段设置为0

PHP网站中,如何判断用户是否是在线的状态?

普通http网站是一种无状态连接,每次一个请求,一个应答,没有长连接状态。

但是可以通过记录访问时间,来确定用户的状态。

用户登录后,每次访问,更新一下最近访问时间在数据库里

在用户页面的公共部分,做一个定时轮询,n秒一次(防止用户打开页面后放着不动,看资料或者做别的)

服务器端做一个定时,将最近时间在n秒内的用户设为在线状态,将最近时间大于n秒的(说明已经关了页面),设为离线状态。 如果是普通 web空间无法配置定时器,可以在每次用户访问时处理一次(如果用户量大,需要做时间判断,防止同时访问量多时多次重复处理,影响服务器性能)

如果能确定一个用户的访问,只有一个浏览器窗口,可以在窗口里加一个关闭事件(onbeforeunload),在此事件中发送一个退出请求,主动设为离线状态。这样状态管理会更完美一些

这样基本就可以完成一个在线状态的管理。具体n 设为多少可根据情况而定,一般5-30秒都是合理的,太短了服务器压力比较大,太长了误差会比较大

关于php用户在线判断的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php用户在线判断 php或者判断的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did167495
更新时间:2023-03-28   阅读:26次

上一篇: js与php与mysql js与php关系

下一篇:php目录自动还原 php返回上级目录

相关资讯

最新资料更新

  • 1.dedecms 5.6 5.7发布文章空白问题解决方法
  • 2.DEDECMS实现在标签中嵌套调用SQL的方法
  • 3.织梦dedeCMS二次开发文档手册 程序目录详解以及数据表结构字段
  • 4.织梦做产品展示怎么去掉图片作为超链接时出现的框框
  • 5.dedecms织梦实现中英文分页功能方法步骤
  • 6.详解火车头采集器免登录采集数据发布到DEDECMS织梦的方法
  • 7.织梦(dedecms)导航条dropdown.js的改进(附演示demo)
  • 8.登录织梦后台提示用户名不存在的解决方法介绍
  • 9.dedecsm模板中首页如何实现分页的三种方法比较分析
  • 10.dedecms文章评论功能用法分析
  • 11.dede织梦文章列表隔行换色的方法
  • 12.织梦dede去掉后台登陆界面广告的方法
  • 13.dedecms插件开发简明教程
  • 14.DedeCMS编辑器fck更换成eWebEditor编辑器具体步骤
  • 15.织梦手机站关闭自动生成首页index.html的方法
  • 16.织梦dedecms会员注册邮件验证设置方法
  • 17.dede中统计栏目文章数的2种实现方法
  • 18.Dedecms文章标题及文章摘要长度修改的方法
  • 19.dedecms list增加noflag属性的方法 实现让列表标签不调用有推荐属性的文章
  • 20.DEDECMS后台登陆空白排查错误原因

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]