2012-05-23 113 views
3

請看下面的代碼片段。測試以確保會話變量不是空的最佳方法是什麼?什麼是測試CodeIgniter會話變量的正確方法?

<?php if ($this->session->userdata('userID')) { 
    $loggedIn = 1; 
} 
else { 
    $loggedIn = 0; 
} ?> 

如果後來在我的劇本,我叫下面,先打印出正確的,但在第二個我收到消息:未定義的變量:的loggedIn

<?php echo $this->session->userdata('userID')); 
     echo $loggedIn; ?> 

我使用!empty嘗試和isset,但兩者都不成功。我也試着用if (!($this->session->userdata('userID'))做倒if/then語句,但沒有骰子。有什麼想法嗎?

回答

9

嘗試做,而不是執行以下操作:

<?php 
$loggedIn = 0; 
if ($this->session->userdata('userID') !== FALSE) { 
    $loggedIn = 1; 
} 
?> 

如果錯誤繼續,你需要的情況下,發佈更多的代碼,您所呼叫的另一範圍變量。

+0

它實際上最終成爲一個問題,沒有將變量傳遞給我正在加載的視圖(noob move!),但我很欣賞澄清。謝謝你,朋友! – JamieHoward

2

如果你的目的是要看到會話變量'userID'是否被設置,那麼下面應該工作:

$this->session->userdata('userID') !== false 
0

爲什麼不你在會議上呼籲is_logged_in創建一個布爾字段,然後檢查像:

if(false !== $this->session->userdata('is_logged_in')) 
0
if($this->session->userdata('is_logged_in')) { 
    //then condition 
} 

這是測試的正確方法!

+0

拋出一個錯誤,遺憾的芽。 – ChristoKiwi

相關問題