Php 如果从数据库中选择的值为1,如何阻止用户?
我有以下检查用户登录的功能。在当前状态下,它会检查用户名或电子邮件和密码(哈希),如果结果与数据库中的匹配,它会返回一些值(如果看不到其他变量或函数,请对它们进行抽象): 现在,我要做的是,在返回值之前,如果在db中找到凭据并匹配,请检查db中名为Php 如果从数据库中选择的值为1,如何阻止用户?,php,mysql,function,Php,Mysql,Function,我有以下检查用户登录的功能。在当前状态下,它会检查用户名或电子邮件和密码(哈希),如果结果与数据库中的匹配,它会返回一些值(如果看不到其他变量或函数,请对它们进行抽象): 现在,我要做的是,在返回值之前,如果在db中找到凭据并匹配,请检查db中名为user\u disabled的另一个值,该值可以是0或1,如果找到1值,则返回另一条消息,类似于的内容此帐户已被禁用,如果找到0,请继续使用以前的代码(成功登录) 我有以下代码,大致满足我的需要,但当我试图将其放入此公共函数时,它不起作用: $sql
user\u disabled
的另一个值,该值可以是0
或1
,如果找到1
值,则返回另一条消息,类似于的内容此帐户已被禁用
,如果找到0
,请继续使用以前的代码(成功登录)
我有以下代码,大致满足我的需要,但当我试图将其放入此公共函数时,它不起作用:
$sql = "SELECT user_disabled FROM users WHERE user_username = '$username'";
if ($stmt = $this->connect->prepare($sql)) {
$stmt->execute();
$stmt->bind_result($disabled);
$stmt->fetch();
$stmt->close();
if($disabled = 0){
/* Here is what should happen if the user is not blocked | The code after "$stmt->fetch()" */
} else {
@$_SESSION['attempts'] = $_SESSION['attempts'] + 1;
$error = true;
$message['error'] = true;
$message['message'] = 'ceva';
return json_encode($message);
}
} else {
$error = true;
$message['error'] = true;
$message['message'] = CANNOT_PREPARE_DATABASE_CONNECTION_MESSAGE;
return json_encode($message);
}
有人能帮我解决这个问题吗,因为我不知道怎么做才是正确的
if($disabled = 0){
应该读
if($disabled == 0){
如果($disabled==0)
?你可能需要一个额外的相等符号。很难说你的问题是什么,因为例子中有太多的东西。如果您可以创建一个简短的、自包含的示例来显示问题,那么诊断起来就更容易了。如果你愿意,把你的答案放在这里,这样我就可以接受了。提示:如果(0==$disabled)@Roland我想他指的是
if($disabled == 0){