在页面上登录阻止用户

时间:2014-12-31 20:19:28

标签: php

我想创建一个执行此操作的脚本:当用户写入用户和密码并按下Login时,我想检查数据库是否被阻止。

DB:ID - 已阻止 - 用户名 - 电子邮件 - 密码 - SALT

阻止字段是布尔值

因此,如果Blocked Field为1,则用户被阻止且无法连接到该站点,请保持登录页面。 如果是0,他可以作为会员登录。

有人可以帮助我吗?

$block = $row['blocked'];

if(isset($_POST['username']) == $block = 1)
{   
    $login_ok = false;
    echo "Account Blocked";
} else {
    $login_ok = true;
}

2 个答案:

答案 0 :(得分:0)

如果数组$ row表示在匹配用户名/密码后从数据库返回的行,并且您说$ row [' block']可以是1或0,那你应该改变一下:

if(isset($_POST['username']) == $block = 1)

到此:

if ($block)

答案 1 :(得分:0)

您使用if() statement错误。

应该如下所示:     $ block = $ row ['blocked'];

if(isset($_POST['username']) && $block == 1)
{   
   $login_ok = false;
   echo "Account Blocked";
} else {
   $login_ok = true;
}

但是,如果您使用$_POST['username']来查明用户是否被阻止,那么您的if语句可以缩短为以下内容:

 $block = $row['blocked'];

 if($block == 1)
 {   
    $login_ok = false;
    echo "Account Blocked";
 } else {
    $login_ok = true;
 }

就个人而言,使用你所拥有的东西,我会这样设置:

if(!isset($_POST['username']){
   echo "Username not entered!";
} else {
   $username = $db->real_escape_string(stripslashes(trim($_POST['username'])));
   $q = $db->query("SELECT * FROM users WHERE username='$username'");
   $row = $q->fetch_assoc();

   $block = $row['blocked'];
   if($block == 1){
      $login_ok = false;
      echo "Account Blocked";
   } else {
      $login_ok = true;
   }
}

希望这有帮助