当用户登录我的网站时,我创建了以下禁止系统。它检查用户是否被禁止,然后按照进程收集信息,最后发出通知并且不让用户登录。但是,这不会发生,我可以正常登录。任何帮助都会得到满足。
$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>';
};
答案 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");
}