John Davidson

php - CodeIgniter session holds value 1 instead of true

0 comments
Message:


In my codeigniter application I have specified a session as below


$this->session->isLoggedIn = true;

echo "Session";

echo $this->session->isLoggedIn;

even though I assign true the output shows as 1 instead. What have I done wrong here?


would really appreciate some help


EDIT :- The problem was actually in the following


When I try to acess this session from another method the session value is set to null. My other function is defined as


public function isLoggedIn()
{
var_dump($this->session->isLoggedIn);

if ((isset($this->session->isLoggedIn)=="true"))
{
return "true";
}
else
{
return "Sorry,false";
}
}

the vardump that I am printing in this isLoggedIn function is Null even though the session variable was assigned as displayed in the initial code above



My Answer:
session->set_userdata('logged_in', true);

However, when I retrieve the value of 'logged_in' session using $this->session->userdata('logged_in'), it returns 1 instead of true.

This is because PHP's session handling mechanism stores boolean values as integers (0 for false and 1 for true). So when you set the session value to true, it gets stored as 1 in the session data.

To check if the session value is true, you can use the following code:

php
if ($this->session->userdata('logged_in') === true) {
// Session value is true
} else {
// Session value is not true
}


This way, you can properly check if the session value is true even though it is stored as 1 in the session data.

Rate this post

5 of 5 based on 4863 votes

Comments




© 2024 Hayatsk.info - Personal Blogs Platform. All Rights Reserved.
Create blog  |  Privacy Policy  |  Terms & Conditions  |  Contact Us