用户活动检查


User Active Check

我有一个小脚本来检查数据库值0或1,但我似乎无法让它工作,我尝试过行计数,但有同样的问题。

public function is_active($id){
    $stmt = $this->db->prepare("SELECT activedd FROM users WHERE id=:id LIMIT 1");
    $stmt->execute(array(':id'=>$id));
    $userRow=$stmt->fetch(PDO::FETCH_ASSOC); 
    if($userRow == '0'){
        return true;
    }else{
        return false;
    }
}

然后在所有页面上调用该函数

$id = $_SESSION['session'];
if(!$user->is_active($id)){
    $user->redirect('../users/inactive.php');
}

改变单元格中的值没有区别,我只通过改变

得到不同的结果

$id = $_SESSION['session']; if(!$user->is_active($id)){ $user->redirect('../users/inactive.php'); }

$id = $_SESSION['session']; if($user->is_active($id)){ $user->redirect('../users/inactive.php'); }

但即使这样,我也有同样的问题,但情况正好相反。我试图重定向用户到一个不活跃的页面时,$userRow == 0,并允许他们继续使用该网站,如果它是1.

问题就在这里:

$userRow=$stmt->fetch(PDO::FETCH_ASSOC); 
if($userRow == '0'){

您将从fetch获得一个关联数组,并在下一行将其与0进行比较。相反,您希望检查查询中选择的列的值,并与之进行比较:

$userRow=$stmt->fetch(PDO::FETCH_ASSOC); 
if($userRow['activedd'] == '0'){