0

伙计们,我需要一个函数来添加我的外部 php 脚本以检查禁止 mybb 用户

如果用户被禁止,我希望这个函数检查数据库,返回这个回显: 第 1 行:你被禁止进入此板 第 2 行:禁止原因:$banreason 第 3 行:禁止时间:$bantime

伙计们,我不是程序员,所以我知道这段代码有很多问题我只是想告诉你我需要什么:

<?php
class ban
{
Function check_ban($uid)
{
  $sql = "Select * From mybb_banned ORDER BY dateline DESC LIMIT 30";
  $result=mysql_query($sql);

  if($mybb->user['uid'] = $result2 ['uid'])
    {
     return array( 'banreason' => $result['baneason'] ,
                   'bantime'   => $result[ 'bantime' ],
                 );
    }
 }
}

$result2 = $ban->check_ban( $uid );

if( $result == false )
{
    echo "you are banned\n" ;
    echo $result[ 'banreason' ]."\n" ;
    echo $result[ 'bantime' ] ;
}
?>

谢谢

4

1 回答 1

0

您正在将结果 id 分配给用户 id,而不是比较它们。我也认为你混淆$result$result2

另一个问题是您需要遍历所有被禁止的成员并检查每个

一个更整洁的方法是做这样的事情:

class ban
{    
    static function check_ban($username)
    {
      // only fetch results for that uid
      $sql = "Select * From mybb_banned INNER JOIN mybb_users ON mybb_banned.uid = mybb_users.uid ORDER BY dateline DESC LIMIT 30 WHERE mybb_users.username=$username";
      $result=mysql_query($sql);

      if(mysql_num_rows($result)) // check if any entries where returned from the database
        {
         return array( 'banreason' => $result['mybb_banned.banreason'] ,
                       'bantime'   => $result[ 'mybb_banned.bantime' ],
                     );
        }
      else return false;
    }
}

if( ban::check_ban( $username ) )
{
    echo "you are banned\n" ;
    echo $result[ 'banreason' ]."\n" ;
    echo $result[ 'bantime' ] ;
}

在这里,我将 check_ban 方法设置为静态,因此您无需实例化 ban 实例即可使用它。

编辑:我已经编辑了上面的代码,以便它通过加入 mybb_users 和 mybb_banned 表来基于用户名进行搜索(将其视为临时将两个表组合成一个使用 uid 匹配行的表)

于 2013-05-19T14:27:50.390 回答