UCHOME自身的防灌水机制较差,很容易被灌水机轰炸。如果你的UCHOME有关联论坛,可以设置用户在登录UCHOME时验证该用户在论坛中的状态,处于某些用户组(例如禁言组、低等级组)时禁止登录。
以下方法来自 discuz.net 用户 dzhope ,特此感谢!
第一步:禁止论坛的某些会员组登陆家园。在 source/function_common.php 中查找 $passport['email'] = $ucresult[3]; ,在下方增加:
//获取用户在论坛的用户组情况。
$group_arr = array('4', '5', '8', '19', '20', '27', '35');//禁止登录空间的论坛用户组
$dbhost1 = 'localhost';//数据库服务器
$dbuser1 = '论坛数据库用户名';//数据库用户名
$dbpw1 = '论坛数据库密码';//数据库密码
$dbname1 = '论坛数据库名';//数据库名
$server_link1=@mysql_connect($dbhost1,$dbuser1,$dbpw1) or die ("无法连接社区数据库,用户鉴权失败。");
$db_link1=@mysql_select_db($dbname1,$server_link1) or die ("无法连接社区数据库,用户鉴权失败。");
$user_array=mysql_fetch_array(mysql_query("SELECT groupid FROM cdb_members WHERE uid='".$passport['uid']."'"));
$user_group=$user_array['groupid'];
if(in_array($user_group,$group_arr)){
die("<meta http-equiv=refresh content=0;url=受限用户转向网址>");
exit();
}
//结束
第二步:在 api/uc.php 中查找 $space = insertsession($member); ,下面增加:
//禁止论坛低等级用户组
$group_arr = array('4', '5', '8', '19', '20', '27', '35');//禁止登录空间的论坛用户组,与第一步中的保持一致
$dbhost1 = 'localhost';//数据库服务器
$dbuser1 = '论坛数据库用户名';//数据库用户名
$dbpw1 = '论坛数据库密码';//数据库密码
$dbname1 = '论坛数据库名';//数据库名
$server_link1=@mysql_connect($dbhost1,$dbuser1,$dbpw1) or die ("无法连接社区数据库,用户鉴权失败。");
$db_link1=@mysql_select_db($dbname1,$server_link1) or die ("无法连接社区数据库,用户鉴权失败。");
$user_array=mysql_fetch_array(mysql_query("SELECT groupid FROM cdb_members WHERE uid='".$passport['uid']."'"));
$user_group=$user_array['groupid'];
if(in_array($user_group,$group_arr)){
die("<meta http-equiv=refresh content=0;url=受限用户转向网址>");
exit();
}
//禁止论坛低等级用户组代码结束
若您喜欢这篇文章,欢迎订阅老张小站以获得最新内容。 / 欢迎交流探讨,请发电子邮件至 mail[at]vdazhang.com 。
欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截