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 votesComments