记录用户总在线时间的HACK
2007-05-12 22:42
375 查看
未完成版.
现在只能记录时间,而不能在其他地方看出来.有时间再把等级也弄进去.
1.运行sql
alter table xoops_users add onlinetime int not null default 0
xoops_ 是你的数据库前缀 默认为xoops
2.修改kernel/online.php
修改 write 函数为
必须打开who's online区块才能统计.
本来修改session.php也能有一样的结果且不用打开who's online也可以统计 但修改这个比较方便就偷懒了~~ :-D
现在只能记录时间,而不能在其他地方看出来.有时间再把等级也弄进去.
1.运行sql
alter table xoops_users add onlinetime int not null default 0
xoops_ 是你的数据库前缀 默认为xoops
2.修改kernel/online.php
修改 write 函数为
function write($uid, $uname, $time, $module, $ip) { $uid = intval($uid); if ($uid > 0) { //$sql = "SELECT COUNT(*) FROM ".$this->db->prefix('online')." WHERE online_uid=".$uid; $sql = "SELECT `online_updated` FROM ".$this->db->prefix('online')." WHERE online_uid=".$uid; } else { $sql = "SELECT COUNT(*) FROM ".$this->db->prefix('online')." WHERE online_uid=".$uid." AND online_ip='".$ip."'"; } list($count) = $this->db->fetchRow($this->db->queryF($sql)); if ( $count > 0 ) { $onlinetime = ($time - $count)>0?($time - $count):0;//count is online_updated when uid > 0 //$sql = "UPDATE ".$this->db->prefix('online')." SET online_updated=".$time.", online_module = ".$module." WHERE online_uid = ".$uid; $sql = "UPDATE ".$this->db->prefix('online').",".$this->db->prefix('users')." SET online_updated=".$time.", online_module = ".$module.", onlinetime = onlinetime + ".$onlinetime." WHERE online_uid = ".$uid." AND uid = ".$uid; if ($uid == 0) { $sql .= " AND online_ip='".$ip."'"; } } else { $sql = sprintf("INSERT INTO %s (online_uid, online_uname, online_updated, online_ip, online_module) VALUES (%u, %s, %u, %s, %u)", $this->db->prefix('online'), $uid, $this->db->quoteString($uname), $time, $this->db->quoteString($ip), $module); } if (!$this->db->queryF($sql)) { return false; } return true; }
必须打开who's online区块才能统计.
本来修改session.php也能有一样的结果且不用打开who's online也可以统计 但修改这个比较方便就偷懒了~~ :-D
相关文章推荐
- 记录用户在线时间
- 利用PROMPT_COMMAND记录每个用户执行命令的时间ip等信息。
- 如何记录网站当期在线用户的ID
- 记录用户在网站上的逗留时间
- 实现“记录用户登录时间和退出时间,同时记录用户IP,并且要记录用户IP对应的省和城市地址”
- 无刷新随时取得当前服务器时间用户登陆时间,在线时间,空闲时间并自动退出的例子
- J2EE HttpSessionAttributeListener实现登录用户在线记录
- spring security3 记录用户登录成功后的登录时间
- 脚本实现记录所有登录用户的信息,包括用户名、登录时间和登录位置
- 使用ASP记录在线用户的数量的代码
- 用户在线时间最多的20个网站
- 求一个论坛的在线人数,假设有一个论坛,其注册ID有两亿个,每个ID从登陆到退出会向一个日志文件中记下登陆时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒。
- SQLSERVER记录登录用户的登录时间
- Linux下查看用户登陆后的操作记录及history命令显示时间
- 一种历史详细记录表,完整实现:CommonOperateLog 详细记录某用户、某时间、对某表、某主键、某字段的修改(新旧值
- linux 命令执行历史记录history显示执行时间和用户
- 线上mongodb 数据库用户到期时间修改的操作记录
- c#如何使用webservice、存储过程及存储过程的创建(简单模仿类似QQ统计用户在线时间为例)
- 实现“记录用户登录时间和退出时间,同时记录用户IP,并且要记录用户IP对应的省和城市地址”
- Cookie应用之用户上次访问时间、用户浏览记录(转)