在用户表中添加两字段:active标记是否登录,datime最后活动时间。定时update这两个值

解决方案 »

  1.   

    MS SQLServer可以建job定时把datime与当前时间比较,大于某一个值的update为0,或者在另一用户登录时做这件事情也可以。这个问题是容易解决的
      

  2.   

    呕,对不起,是我没说清楚,我的环境是 Apache2, PHP5, MySQL4我没有用MS SQLServer
      

  3.   

    你可以在页面里加上一句update user set active=0 where activetime<$certaintime$certaintime为用户活动时间与当前时间的间隔的最大值~~
      

  4.   

    游客怎么统计?还有一个用户没有登陆的时候游客是n,会员是m个,如果他登陆了游客变成n-1个了,
    会员变成m+1个,怎么解决这个?其实我是根据ip来判断的,但是还有一个问题,用户如果有两个帐号,如果用户用帐号A登陆了,然后注销,然后用帐号B登陆,这应该算一个ip,感觉挺麻烦的
    不知道哪个大虾有写好的代码,贴出来欣赏一下
      

  5.   

    是的~~时间一长,就假定他已经退出~~但是不一定要重新登陆~~~你可以用SESSION或COOKIE保存他的登陆信息~~如果超过指定时间不活动,数据库里的ACTIVE为0,但是只要他一活动,只要登陆信息还在,就再把ACTIVE UPDATE为1就可以了~~
      

  6.   

    用户A登陆,记录登陆信息(SESSION或COOKIE)--刷新每次的活动时间(操作a)-->接着-》
    -->停止活动
             |>>>>规定时间内有动作,返回(操作a)
             |>>>>规定时间内无动作,update user set active=0
                            |>>>关闭浏览器--end
                            |>>>用户接着活动
                                      |>>>>如果还有登陆信息的记录--->update user set active=1
                                      |>>>>如果没有登陆信息记录---->登陆页面
      

  7.   

    汗~~~乱套了~~排版一下~~用户A登陆,记录登陆信息(SESSION或COOKIE)--刷新每次的活动时间(操作a)-->接着-》
    -->停止活动
         |>>>>规定时间内有动作,返回(操作a)
         |>>>>规定时间内无动作,update user set active=0
                           |>>>关闭浏览器--end
                           |>>>用户接着活动
    |>>>>如果还有登陆信息的记录--->update user set active=1
    |>>>>如果没有登陆信息记录---->登陆页面
      

  8.   

    恩~~用IE看了一下没乱~~呵呵,还是XML好~~编辑器里是什么就是什么`~~~
      

  9.   

    为什么不去搜一下以前的帖子?
    这个问题最好的解决办法是session,把session写入数据表,session超时就说明他吊线
      

  10.   

    把SESSION 存到数据里里
    然后查询记录
      

  11.   

    <?php
    $num=0;
    $dirpt    =    "online";
    $reftime    =    1;if (is_dir($dirpt) && $dir = opendir($dirpt)) {
      while (($file = readdir($dir)) !== false) {
        if(strcmp($file,"..")==0 || strcmp($file,".")==0){
            continue;
        }
        $D_[date("Y-m-d H:i:s",filemtime($dirpt."/".$file))]=$file;
        $num++;
        unset($cum);
      }  
      closedir($dir);
      $filename    =    session_id();
      $fp        =    fopen($dirpt."/".$filename,"w");
      fputs($fp,"");
      fclose($fp);  $ntime    =    date("Y-m-d H:i:s",mktime(date("H"),date("i")-1,0,date("m"),date("d"),date("Y")));
      $D_[$ntime]="-";
      krsort($D_);
      $onlinenumber=0;
      while(1){
        $vkey=key($D_);
        $onlinenumber++;
        if(strcmp($ntime,$vkey)==0){
            break;
        }else{
            array_shift($D_);
        }
      }
      array_shift($D_);
      reset($D_);
      while(count($D_)>0){
        $ckey=key($D_);
        unlink($dirpt."/".$D_[$ckey]);
        if(!next($D_)){
            break;
        }
      }}else{
        @chmod("..",0777);
        @mkdir($dirpt,0777);
    }
    $online=$onlinenumber-1;
    $retime=60*$reftime;
    ?>
    这是一个算在线的代码,没有注节,哪位大侠加上注节,发出来!
      

  12.   

    http://www.dev-club.com/club/bbs/showEssence.asp?id=22572&page=1应该有帮助