伙计们我需要一个函数来添加我的外部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' ] ;
}
?>
谢谢
答案 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匹配行的表)