我想创建一个执行此操作的脚本:当用户写入用户和密码并按下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;
}
答案 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;
}
}
希望这有帮助