我目前有一个运行良好的登录功能,但是我希望在该功能中添加一些内容,以便它还检查用户状态是否为1.
1= 禁止
0= 未禁止
功能:
public function doLogin($uname,$umail,$upass)
{
try
{
$stmt = $this->conn->prepare("SELECT user_id, user_name, user_email, user_pass, status FROM users WHERE user_name=:uname OR user_email=:umail ");
$stmt->execute(array(':uname'=>$uname, ':umail'=>$umail));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() == 1)
{
if(password_verify($upass, $userRow['user_pass']))
{
$_SESSION['user_session'] = $userRow['user_id'];
return true;
}
else
{
return false;
}
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
登录.php
if(isset($_POST['btn-login']))
{
$uname = strip_tags($_POST['txt_uname_email']);
$umail = strip_tags($_POST['txt_uname_email']);
$upass = strip_tags($_POST['txt_password']);
if(empty($uname) || empty($umail) || empty($upass)){
$error = "Please enter all fields";
}
if($login->doLogin($uname,$umail,$upass))
{
$success = "Logged in successfully, redirecting..";
header( "refresh:3;url=debits" );
//$login->redirect('debits');
}
else
{
$error = "Incorrect username or password";
}
}
我尝试过这样做if(password_verify($upass, $userRow['user_pass']) && $userRow['status'] == 0),我认为这可行,但是当我尝试使用被禁止的帐户进行测试时,我仍然会收到错误消息Incorrect username or password,而我更愿意这样做Your account has been banned。