用于检查mybb用户禁止的外部php脚本

时间:2013-05-19 14:25:28

标签: php mybb

伙计们我需要一个函数来添加我的外部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' ] ;
}
?>

谢谢

1 个答案:

答案 0 :(得分: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方法设为静态,因此您无需在使用之前实例化禁止实例。

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