找回密码
 注册

ɨһɨ΢

QQ¼

ֻһٿʼ

搜索
安徽家装论坛管理细则
查看: 2233|回复: 13

本站在线时间问题解决方案(请管理员在修改之前一定要先做文件备份)

  [复制链接]
发表于 2007-5-7 14:53:02 | 显示全部楼层 |阅读模式
在本站坛子里潜了一段时间发现了一个大家都一直最头痛的事情就是本站的在线时间一直不准确,在线五六个小时只计二三个小时,部分会员最想痛哭的是潜水怎么长时间了,可在线时间还是0,心里那个不爽啊,本人也是如此呀,一个版主在线时间居然是0,这是一件多么没面子的事呀,不过现在不用担心了,经过本人半天的时间,终于发现了问题,这不下面给出解决方案,请管理员在修改之前,做好文件备份工作,以免。。。哈哈就不多说了。

1、误差不超过5分钟(即系统每5分钟增加一次在线时间,如果你想每10分钟,就把其中的300改成600)

需要修改以下文件:
global.php

找到函数
function User_info(){

将函数下$db_onlinetime替换为300就可以了.
function User_info(){
global $db,$timestamp,$db_onlinetime,$winduid,$windpwd,$db_ifonlinetime,$c_oltime,$onlineip,$db_ipcheck,$tdtime;
$ct='';
$detail =$db->get_one(\"SELECT m.uid,m.username,m.password,m.email,oicq,m.groupid,m.memberid,m.regdate,m.timedf,m.style,m.datefm,m.t_num,m.p_num,m.yz,m.newpm,m.showsign,m.payemail,md.postnum,md.rvrc,md.money,md.credit,md.currency,md.lastvisit,md.thisvisit,md.onlinetime,md.lastpost,md.todaypost,md.onlineip,md.uploadtime,md.uploadnum,md.editor,md.starttime FROM pw_members m LEFT JOIN pw_memberdata md USING(uid) WHERE m.uid='$winduid'\");
if(strpos($detail['onlineip'],$onlineip)===false){
  $iparray=explode(\".\",$onlineip);
  if(strpos($detail['onlineip'],$iparray[0].'.'.$iparray[1])===false) $loginout='Y';
}
if(!$detail || PwdCode($detail['password']) != $windpwd || ($loginout=='Y' && $db_ipcheck==1)){
  unset($detail);
  $GLOBALS['groupid']='guest';
  require_once(R_P.'require/checkpass.php');
  Loginout();
  Showmsg('ip_change');
}else{
  unset($detail['password']);
  if($timestamp-$detail['thisvisit']>300){
    if(!GetCookie('hideid')){
     $ct=\"lastvisit=thisvisit,thisvisit='$timestamp'\";
     $detail['lastvisit'] = $detail['thisvisit'];
     $detail['thisvisit'] = $timestamp;
    }
    if($db_ifonlinetime == 1 && $ct && $c_oltime > 0){
     if($c_oltime > 300*1.2){
      $c_oltime = 300;
     }
     $ct   .= \",onlinetime=onlinetime+'$c_oltime'\";
     $c_oltime = 0;
    }
    $ct && $db->update(\"UPDATE pw_memberdata SET $ct WHERE uid='$winduid' AND $timestamp-thisvisit>300\");
  }
}
return $detail;
}

2、还有就是cookie问题,因为在线时间是通过cookie来增加的(这里就简单的说一下,会语言的朋友都懂)
当你的IE缓存存满时有于论坛的本身BUG cookie可能会不被存贮,所以有必要要对你的IE缓存进行清理:
打开IE---internet选项---“删除cookie”--“删除文件(脱机内容也删) ”。

如果你的机器硬盘大一些,可以将“使用磁盘”放大到500,或者1000。。

关于这个我特意经过实验的! 证实了,在线时间不涨的部分原因是你的磁盘被页面文件占满了!不删除的话不会再刷新记录!所以,导致一部分人涨时间,一部分不涨!

也可以在论坛底部增加一个“清除cookie”的按钮

增加“清除cookie”方法:

打开 profile.php

搜索
?>

在上面加入

//cookie清除
if($action == 'clearcookies') {
foreach ($_COOKIE as $c_key => $c_val){
setcookie($c_key, '', $timestamp - 86400 * 365, $db_ckpath, $db_ckdomain);
}
refreshto(\"index.php\",'operate_success');
}
///cookie清除结束


打开 footer.htm

搜索

<span class=\"f12 fl\">{$GLOBALS[&#39;db_foot&#39;]}</span><a href=\"$db_ceoconnect\">Contact us</a>

在前面加入
<a href=\"profile.php?action=clearcookies\">清除Cookies</a>
管理员也可先试试在后台里把在线用户时限(多少分钟内有动作视为在线):把这个设置得小一点。
回复

使用道具 举报

发表于 2007-5-7 15:39:35 | 显示全部楼层
多谢楼主。你太有才了
回复 给力

使用道具 举报

发表于 2007-5-7 17:06:51 | 显示全部楼层
我地个孩了,怎么懂这么多啊
回复 给力

使用道具 举报

发表于 2007-5-8 01:09:22 | 显示全部楼层
懂的太多了,我顶
回复 给力

使用道具 举报

发表于 2007-5-9 10:34:26 | 显示全部楼层
楼主,你是高人啊,崇拜啊
回复 给力

使用道具 举报

发表于 2011-5-9 17:18:03 | 显示全部楼层
牛牛牛牛呀











回复 给力

使用道具 举报

发表于 2011-10-2 02:01:21 | 显示全部楼层
大家什么看法?我先支持













回复 给力

使用道具 举报

发表于 2011-11-1 08:15:49 | 显示全部楼层
回复 给力

使用道具 举报

发表于 2012-2-29 08:17:17 | 显示全部楼层
顶你,支持楼主!有意思












北京商标注册代理
回复 给力

使用道具 举报

发表于 2012-3-29 07:49:55 | 显示全部楼层
回不回呢,考虑再三,还是不回了吧。













一等家丁 武动乾坤最新章节
回复 给力

使用道具 举报

发表于 2012-8-25 09:55:08 | 显示全部楼层
LZ辛苦了,支持一下!












死神
回复 给力

使用道具 举报

发表于 2013-2-2 04:41:54 | 显示全部楼层
看贴不回贴 都什么习惯呀?






















听说美妮防辐射服还不错的,是吗
回复 给力

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表