本文目录一览:
- 1、php是如何判断在线用户的?
- 2、php 用户是否在线
- 3、php如何实现判断用户是否在线的功能?
- 4、php中如何判断用户是否在线
- 5、PHP网站中,如何判断用户是否是在线的状态?
- 6、php聊天系统怎么样判断用户是不是在线
php是如何判断在线用户的?
1.用户登录.如果用户名和密码正确.则将用户名或者其他唯一的值赋值给session("username")
2.将session("username")存入数据库.
3.定时检查session("username")还是否有效.如有效,则在线.
php 用户是否在线
用户表新增一个字段,用于判断是否在线,
登陆的时候,将字段设置为1
退出的时候,将字段设置为0
php如何实现判断用户是否在线的功能?
其实HTTP协议是无连接的,数据交换完毕就断开了,理论上服务器上无论用什么语言写的程序,都不可能知道客户端的用户是否在线。
一般的办法都是客户端打开网页的时候,记录一下最后打开时间,我们假释打开一个页面会保留多长的时间(比如10秒),那么只要最好打开网页的时间到现在没有超过这个限度的就叫做在线,超过的就是离线。
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网站中,如何判断用户是否是在线的状态?
首先把session弄清楚 session是和cookie相似的东西,都用于保存用户的私有信息。不同的是cookie保存于客户端而session保存于服务器端 既然是“私有信息”那么在不同的浏览器进程间是不能互访的 不错,ASP可以通过endSession在用户注销session时通过修改Application中的变量值来达到记录用户状态的目的。当然也有例外 php有session_destroy用于注销session,当然使用的是php预定的方式 但你可以用session_set_save_handler函数将php预定的处理转向你自己定义的函数。有如asp中修改global.asa一般 一旦你设置了session处理函数,这些问题就都在你掌控之中了
php聊天系统怎么样判断用户是不是在线
这个其实有很多种处理方案,我给两个方案吧,
方案一、用户登陆成功后,将用户的信息,如用户ID保存到session当中去,然后我们去判断session当中是否有当前用户ID就可以判断出该用户是否在线了,然后用户退出的时候,将此session清除就可以啦;
方案二、
用户表设置一个字段,用于保存用户的登陆状态,如果用户登陆成功才设置成1,否则设置成0,然后当要判断用户是否登陆的时候,只要到数据库当中去取这个值判断就可以啦,用户退出前,要先将这个状态Update成0状态就可以啦,不过这样的话,当由于断电而非法关闭的时候,用户状态就没有办法更新到数据库当中啦;
两个方案自认为还是方案一要好些啦;