记录用户总在线时间的HACK

未完成版.

现在只能记录时间,而不能在其他地方看出来.有时间再把等级也弄进去.

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 ) {
            
$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
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值