登录时禁止系统的问题

时间:2011-04-24 13:15:39

标签: php mysql

当用户登录我的网站时,我创建了以下禁止系统。它检查用户是否被禁止,然后按照进程收集信息,最后发出通知并且不让用户登录。但是,这不会发生,我可以正常登录。任何帮助都会得到满足。

    $un9 = "gdscei";
    $checkban = mysql_query("SELECT * FROM bans WHERE usr = '" .$un9. "'") or die(mysql_error());
        if(mysql_num_rows($checkban) != 0){
            $query7 = "SELECT * FROM bans WHERE usr = '".$un9."'";
    $result7 = mysql_query($query7) or die(mysql_error());
    while ($row7 = mysql_fetch_assoc($result7)) {
        $reas = $row7['reas'];
        $timeb = $row7['time'];
        $tban = $row7['tban'];
            $tip = $row7['ipd'];
    };
    if($timeb == "perm"){
        $bant = "Permanent";
    }else{
        $bant = $timeb;
    };
    $checkusrdel = mysql_query("SELECT * FROM users WHERE username = '".$un9."'") or die(mysql_error());
    if(mysql_num_rows($checkusrdel) != 0){
    $acdel = "n";
    }else{
    $acdel = "y";
    };
    if(empty($tip) && acdel == "n"){
    $bank = "account ban";
    }else if($acdel == "y" && empty($tip)){
    $bank = "account deleted";
    }else if($acdel == "y" && $tip){
    $bank = "account deleted + IP ban";
    }else{
    $bank = "account ban + IP ban";
    };
    $notice = '<script type="text/javascript">alert("You have been banned, as followed: "'.$bank.'". Your ban lasts until "'.$bant.'"."); window.open("login.php","_self");</script>';
    };

2 个答案:

答案 0 :(得分:1)

解决方案比您想象的更简单:

$notice = '<script type="text/javascript">alert("You have been banned, as followed: '.$bank.'. Your ban lasts until '.$bant.'."); window.open("login.php","_self");</script>';

简而言之,您不应在JavaScript警报消息中使用过两次括号。

添加:最后不要忘记回复通知。 PHP脚本的摘录并没有向我显示这样的内容。如果要在禁止检查后显示主页,只需使用die - 函数输出消息,并在用户被禁止时终止当前脚本。在您的情况下,只需在定义变量$notice之后添加以下内容:

die($notice);

答案 1 :(得分:-2)

您向用户提供了太多信息,他们需要知道的是他们被禁止,而不是禁止的类型。

if (banned)
{
  ajax.display("Ban HAMMER!!");
}
else
{
  user.logon();
  redirect("location: home.php");
}
相关问题