原帖由 sdts 于 2005-8-24 09:04 发表
我用的这个是商业版的阿 公司的 没有账号进不去商业区 晕死
这个上PK的做法.暂时可以防止作弊.那个BUG在正式版也会修复
- ALTER TABLE `cdb_onlinetime` ADD `lastolupdate` INT( 10 ) UNSIGNED DEFAULT '0' NOT NULL ;
复制代码
include/global.func.php
- $db->query("UPDATE {$tablepre}onlinetime SET total=total+'$oltimespan', thismonth=".(gmdate('Yn', $timestamp) == gmdate('Yn', $lastactivity) ? 'thismonth' : 0)."+'$oltimespan' WHERE uid='$discuz_uid'");
复制代码
改成-->
- $db->query("UPDATE {$tablepre}onlinetime SET total=total+'$oltimespan', thismonth=".(gmdate('Yn', $timestamp) == gmdate('Yn', $lastactivity) ? 'thismonth' : 0)."+'$oltimespan', lastolupdate='$timestamp' WHERE uid='$discuz_uid' AND lastolupdate<=".($timestamp - $oltimespan*60), 'UNBUFFERED');
复制代码- $db->query("REPLACE INTO {$tablepre}onlinetime (uid, thismonth, total)
- VALUES ('$discuz_uid', '$oltimespan', '$oltimespan')");
复制代码
改为:
- $db->query("INSERT INTO {$tablepre}onlinetime (uid, thismonth, total, lastolupdate)
- VALUES ('$discuz_uid', '$oltimespan', '$oltimespan', '$timestamp')", 'SILENT');
复制代码 |