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

本文介绍了一种在论坛中通过代码实现虚拟在线会员及游客的方法,以增加网站活跃度。通过设定一系列参数如在线时间范围、用户动作等,随机生成虚拟用户会话,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:论坛添加虚拟会员、虚拟游客,公式为
虚拟会员 =(实际会员*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
//=========================================================================================
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值