| 论坛未验证会员,禁止访问会员,禁止发言会员,往往会登陆到家园继续灌水,对网站的管理引起不少麻烦。目前uchome和discuz论坛之间关于会员组,还没有给出一定的方案,官方的方向,目前是uchome是独立的,希望官方会从ucenter着手,或者另外想出一个更好的办法解决这个问题。 我的解决方案很简单,水平不高,高手莫笑!
 分为两步走:
 第一步:
 禁止论坛的某些会员组登陆家园,不登陆就没法灌水了。
 在家园的source/function_common.php 修改getpassport函数,在第1266行
 下面增加复制代码$passport['email'] = $ucresult[3];
这样以来,论坛被禁止登陆家园的会员组是无法登陆家园进行灌水的。但是如果家园整合了其他应用程序,仍然是可以通过同步登陆来登录家园的。因此我们还要修改第二步,禁止这些会员组的会员通过同步登陆来登录到uchome。复制代码 
//获取用户在论坛的用户组情况。
    $group_arr = array('4', '5', '6', '8', '9');//论坛中不希望登陆家园的会员组ID
    $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("您在论坛中的用户组被禁止激活家园,如有疑问,请到论坛进行咨询!");
exit();
    }
     //结束
 第二步:
 修改api/uc.php,修改同步登陆函数synlogin。在226行
 下面增加复制代码$space = insertsession($member);
方法有点笨,不过蛮有效的,对那些禁止发言,禁止访问,禁止IP,未验证会员,这样他们就没法到uchome中灌水。复制代码 
//获取用户在论坛的用户组情况。
    $group_arr = array('4', '5', '6', '8', '9');//论坛中不希望登陆家园的会员组ID
    $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("您在论坛中的用户组被禁止激活家园,如有疑问,请到论坛进行咨询!");
    exit();
    }
     //结束
为以防万一,请注意备份程序。
 |