首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Discuz论坛平添虚拟会员、虚拟游客(根据实际会员游客数)

2013-01-08 
Discuz论坛添加虚拟会员、虚拟游客(根据实际会员游客数)需求:论坛添加虚拟会员、虚拟游客,公式为虚拟会员 (

Discuz论坛添加虚拟会员、虚拟游客(根据实际会员游客数)
需求:论坛添加虚拟会员、虚拟游客,公式为
     虚拟会员 =(实际会员*10,实际会员*10+10)-------->(最小值,最大值)
     虚拟游客 =(实际游客*10,实际游客*10+10)

修改代码:
    bbs/include/index_classics.inc.php:
    $discuz_action = 1;后添加以下代码
    //=========================================================================================
    //虚拟在线会员+游客 START

    $virtualhack = '1';                 // 1=开 0=关

    if($virtualhack=='1') {

    $mintime = 100;             // 在线的最小值(秒)
    $maxtime = 600;             // 在线的最大值(秒)
    $dis_time = 610;             // 超过dis_time(秒)删除

    $current_user = 100;          // 当前用户少于100,就执行虚拟用户

    $start_uid = 3;          //   起始会员UID
    $end_uid = 1000;          //   结束会员UID

    $action_arr = array("0","0","1","1","2","191","1","2","2","2","31","51"); //设定虚拟用户允许动作

    $current = time();
    $current_different = $current - $dis_time;

    $query = $db -> query("SELECT COUNT(*) FROM {$tablepre}sessions WHERE ip1<>'000'");
    $onlineuser = $db -> result($query, 0);
    $membercountsession = $db->result_first("SELECT COUNT(*) FROM {$tablepre}sessions WHERE  uid <> '0' and ip1<>'000'");
    $guestcountsession = $onlineuser-$membercountsession;

    $min_user = $membercountsession*9;             // 设定想增加多少会员的最小值
    $max_user = $membercountsession*10;             // 设定想增加多少会员的最大值

    $min_guest = $guestcountsession*9;             // 设定想增加多少访客的最小值
    $max_guest = $guestcountsession*10;             // 设定想增加多少访客的最大值

    if($onlineuser <= $current_user ) {
       $db -> query("DELETE FROM {$tablepre}sessions WHERE ip1='000'");
       $randguest = mt_rand($min_guest, $max_guest); //游客
       $randuser = mt_rand($min_user, $max_user); //会员

       $query = $db -> query("SELECT fid FROM {$tablepre}forums WHERE type = 'forum'");
       while($fidresult = $db -> fetch_array($query)) {
         $fidscope[] = $fidresult['fid'];
       }

    //   随机插入在线会员
       for($i = 1; $i <= $randuser; $i++) {

         $randtime = mt_rand($mintime, $maxtime);
         $onlinetime = $current - $randtime;

         $randaction = mt_rand(0, count($action_arr));
         $onlineaction = $action_arr[$randaction];

         $onlinefid = 0;
         if($onlineaction == '2') {
            $randfid = mt_rand(0, count($fidscope));
            $onlinefid = $fidscope[$randfid];
         }
         $online_sid = random(6);
        

         $rand_uid = mt_rand($start_uid, $end_uid);
         $query = $db -> query("SELECT `uid`,`username` FROM {$tablepre}members WHERE `uid` = '$rand_uid'");
         while($row = $db -> fetch_array($query)){
            $db -> query("INSERT INTO {$tablepre}sessions (sid,ip1, groupid, styleid, lastactivity, action, fid, uid, username )
            VALUES ('$online_sid','000' ,'10', '1','$onlinetime','$onlineaction','$onlinefid','$row[uid]','$row[username]')");
         }
       }

    //   随机插入在线游客
       for($i = 1; $i <= $randguest; $i++) {
         $randtime = mt_rand($mintime, $maxtime);
         $onlinetime = $current - $randtime;

         $randaction = mt_rand(0,count($action_arr));
         $onlineaction = $action_arr[$randaction];

         $onlinefid = 0;
         if($onlineaction == '2') {
            $randfid = mt_rand(0,count($fidscope));
            $onlinefid = $fidscope[$randfid];
         }
         $online_sid = random(6);
         $db -> query("INSERT INTO {$tablepre}sessions (sid,ip1, groupid, styleid, lastactivity, action, fid )
            VALUES ('$online_sid','000' ,'7', '1','$onlinetime','$onlineaction','$onlinefid')");
       }


    }
    }

    //虚拟在线会员+游客 END
    //=========================================================================================

热点排行