测试CodeIgniter会话变量的正确方法是什么?

时间:2012-05-23 01:16:09

标签: php codeigniter session variables isset

获取以下代码段。测试以确保会话变量不为空的最佳方法是什么?

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

如果稍后在我的脚本中,我调用以下内容,第一次正确打印,但在第二次我收到消息:未定义变量:loggedIn

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

我已尝试使用!emptyisset,但两者均未成功。我还尝试使用if (!($this->session->userdata('userID'))向后执行if / then语句,但没有骰子。有什么想法吗?

4 个答案:

答案 0 :(得分:9)

请尝试执行以下操作:

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

如果错误仍然存​​在,您需要发布更多代码,以防您在另一个范围内调用该变量。

答案 1 :(得分:2)

如果您的目的是查看会话变量'userID'是否已设置,那么以下内容应该有效:

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

答案 2 :(得分:0)

为什么不在会话中创建一个名为is_logged_in的布尔字段,然后检查如下:

if(false !== $this->session->userdata('is_logged_in'))

答案 3 :(得分:0)

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

这是测试的正确方法!