判断会员在线方法探讨
2007-11-07 10:45
127 查看
在我们好多网站运营中,特别是一些web2.0的用户之间交互的网站,通常需要实时获得用户是否在线.通常我们用的方法经常是30分钟无动作即作离线处理,因为前面项目的关系,我用了这种方法.
1,在数据库中建立如下的user表
CREATE TABLE user (
id int(11) autoincreatment,
name varchar(11),
password varchar(64),
isonline enum(0,1),
onlinetime int(11),
offlinetime int(11)
)primary key id;
2,在global.php中引入文件isOnline.php.即用户一有动作,就触发该文件:
<?php
session_start();
if(!is_login())
{
exit('未登录');
}
/**
在此更新在线时间
*/
$updateOnLineTimeSql = "update user set ōnlinetime=time() where id = $_SESSION['id']";
mysql_query($updateOnlineTimeSql);
3.设置linux的cron,并将其指向clearOnlineUser.php,设置为5分钟执行一次,该php文件内容如下:
<?php
session_start();
if(!is_login())
{
exit('未登录');
}
/**
用当前时间戳与表中onlinetime字段做差,如果大于30分钟,即已离线,否则为在线.
*/
$getOnLineTimeStampSql = "select onlinttime from user where id=$_SESSION['id']";
$getOnLineTimeStampQuery = mysql_query($getOnLineTimeStampSql);
$getOnLineTimeStampRes = mysql_fetch_array($getOnLineTimeStampQuery);
$onLineTimeStamp = $getOnLineTimeStampRes['onlinetime'];
if(time()-$onLineTimeStamp>30*60)
{
//已退出,将数据库中的isonline置为0
}
else
{
//他还是在线的.
}
4,这样就可以根据数据库中的isonline字段较为准确地判断用户是否在线了.
1,在数据库中建立如下的user表
CREATE TABLE user (
id int(11) autoincreatment,
name varchar(11),
password varchar(64),
isonline enum(0,1),
onlinetime int(11),
offlinetime int(11)
)primary key id;
2,在global.php中引入文件isOnline.php.即用户一有动作,就触发该文件:
<?php
session_start();
if(!is_login())
{
exit('未登录');
}
/**
在此更新在线时间
*/
$updateOnLineTimeSql = "update user set ōnlinetime=time() where id = $_SESSION['id']";
mysql_query($updateOnlineTimeSql);
3.设置linux的cron,并将其指向clearOnlineUser.php,设置为5分钟执行一次,该php文件内容如下:
<?php
session_start();
if(!is_login())
{
exit('未登录');
}
/**
用当前时间戳与表中onlinetime字段做差,如果大于30分钟,即已离线,否则为在线.
*/
$getOnLineTimeStampSql = "select onlinttime from user where id=$_SESSION['id']";
$getOnLineTimeStampQuery = mysql_query($getOnLineTimeStampSql);
$getOnLineTimeStampRes = mysql_fetch_array($getOnLineTimeStampQuery);
$onLineTimeStamp = $getOnLineTimeStampRes['onlinetime'];
if(time()-$onLineTimeStamp>30*60)
{
//已退出,将数据库中的isonline置为0
}
else
{
//他还是在线的.
}
4,这样就可以根据数据库中的isonline字段较为准确地判断用户是否在线了.
相关文章推荐
- JS判断客服QQ号在线还是离线状态的方法
- JS判断客服QQ号在线还是离线状态的方法
- JS判断用户是否在线的方法
- 实时判断用户是否在线的方法之一(转自CSDN上的一位朋友)。
- Discuz!X3 修改在线人数在线会员以及统计数据的方法
- 判断任意qq是否在线的简单方法
- js 判断qq是否在线方法
- 判断QQ是否在线方法(接口)
- 判断在线用户的方法
- 判断会员等级的一个本方法
- Java TCP socket 判断对方是否在线的方法
- 用PHP判断用户是否在线的方法
- phpcms V9静态判断会员登录状态的方法
- phpcms V9静态判断会员登录状态的方法
- 枚举转化和判断方法的总结
- 如何判断对象类型/对typeof方法使用认识
- 判断Checkbox和Radio的一种方法
- 多线程判断用户是否在线(后台运行ping脚本)
- jQuery判断checkbox是否选中的3种方法
- 判断浏览器版本的方法集合