Search code examples
phpcodeignitersessionvariablesisset

What is the proper way to test CodeIgniter session variable?


Take the following code snippet. What is the best way to test to make sure the session variable isn't empty?

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

If later in my script, I call the following, the first prints properly, but on the second I receive Message: Undefined variable: loggedIn

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

I've tried using !empty and isset, but both have been unsuccessful. I also tried doing the if/then statement backwards using if (!($this->session->userdata('userID')), but no dice. Any thoughts?


Solution

  • Try doing the following instead:

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

    If the error continues, you'll need to post more code in case you're calling that variable in another scope.