2012-05-23 5 views
3

Выполните следующий фрагмент кода. Каков наилучший способ проверить, чтобы переменная сеанса не была пустой?Каков правильный способ проверки переменной сеанса CodeIgniter?

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

Если позже в моем сценарии, я называю следующее, первые отпечатки должным образом, но на втором я получаю сообщение: Undefined переменной: LoggedIn

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

Я попытался с помощью !empty и isset, но оба они не увенчались успехом. Я также попытался сделать заявление if/then назад, используя if (!($this->session->userdata('userID')), но не кубики. Есть предположения?

ответ

9

Try выполнив следующие вместо:

<?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

Смежные вопросы