- UID
- 101090
- 阅读权限
- 100
威望
轻币 枚
XD 个
注册时间2009-3-1
最后登录1970-1-1
|
楼主 |
发表于 2011-6-20 23:36
|
显示全部楼层
weer 发表于 2011-6-20 23:17
discuz! x2
DB::query("UPDATE ".DB::table('common_onlinetime')."
SET total=total+'$oltimespan', ...
这两个其实是一样的……(7.2 的在线时间也是有缓存的)
从 onlinetime 表更新个人资料的语句在下面:- if($_G['uid'] && TIMESTAMP - $ulastactivity > 21600) {
- if($oltimespan && TIMESTAMP - $ulastactivity > 43200) {
- $total = DB::result_first("SELECT total FROM ".DB::table('common_onlinetime')." WHERE uid='$_G[uid]'");
- DB::update('common_member_count', array('oltime' => round(intval($total) / 60)), "uid='$_G[uid]'", 1);
- }
- dsetcookie('ulastactivity', authcode(TIMESTAMP, 'ENCODE'), 31536000);
- DB::update('common_member_status', array('lastip' => $_G['clientip'], 'lastactivity' => TIMESTAMP, 'lastvisit' => TIMESTAMP), "uid='$_G[uid]'", 1);
- }
复制代码 从代码里面就可以看出来了……在线时间更新的要求就是 TIMESTAMP(服务器当前时间)和 $ulastactivity(上次访问页面的时间)相差超过 43200 秒(12 小时)以上
|
|