2015-10-24 111 views
0

我有一個小腳本來檢查值爲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

+2

嘗試'如果($ userRow [「activedd」] ==「0」){'。你正在用'0'與你當前的代碼比較一個關聯數組。 – andrewsi

+0

在打開PHP標記後立即在文件頂部添加錯誤報告,例如'<?php error_reporting(E_ALL); ini_set('display_errors',1); '然後你的代碼的其餘部分,看看它是否產生任何東西。 –

+0

我有,它不,我不認爲我需要添加整個頁面。 –

回答

1

問題就在這裏:

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

你得到一個關聯數組從回fetch,並將它與下一行的0進行比較。相反,你要檢查你在查詢所選擇的列中的值,並比較與:

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

感謝這一點。 –