CodeIgniter - Session Management
Session Management
When
building
websites,
we
often
need
to track user’s activity and state and for this
purpose, we have to use session. CodeIgniter has session class for this purpose.
Initializing a Session
Sessions
data
are
available
globally
through
the
site
but
to
use
those
data
we
first
need to initialize the session. We can do that by executing the following line in constructor.
$this->load->library('session');
After loading the session library, you can simply use the session object as shown below.
$this->session
Add Session Data
In PHP, we simply use $_SESSION array to set any data in session as shown below.
$_SESSION[ŧkeyŨ]
= value;
Where ‘key’
is the key of array and value is assigned on right side of equal to sign. The same thing can be done in CodeIgniter as shown below.
$this->session->set_userdata('some_name',
'some_value');
set_userdata() function
takes two arguments.
The first argument,
some_name, is the name of the session variable, under which, some_value will be stored.
set_userdata() function
also
supports
another
syntax
in
which
you
can
pass
array
to store values as shown below.
$newdata =
array(
'username' =>
'johndoe',
'email' => 'johndoe@some-site.com',
'logged_in'
=>
TRUE
);
$this->session->set_userdata($newdata);
Remove Session Data
In
PHP,
we
can
remove
data
stored
in
session
using
the
unset() function
as
shown below.
unsetſ$_SESSION[ŧsome_nameŨ]ƀ;
Removing
session
data
in
CodeIgniter
is
very
simple
as
shown
below.
The
below
version of unset_userdata() function will remove only one variable from session.
$this->session->unset_userdata('some_name');
If
you
want
to
remove
more
values
from
session
or
to
remove
an
entire
array
you
can use the below version of unset_userdata() function.
$this->session->unset_userdata($array_items);
Fetch Session Data
After setting data in session, we can also retrieve that data as shown below.
Userdata() function
will
be
used
for
this
purpose.
This
function
will
return
NULL if
the
data
you
are trying to access is not available.
$name=$this->session->userdata('name');
Example
Create a controller class called Session_controller.php and save it in application/controller/Session_controller.php.
<?php
class Session_controller
extends
CI_Controller
{
public function
index()
{
//loading
session
library
$this->load->library('session');
//adding data
to
session
$this->session->set_userdata('name','virat');
$this->load->view('session_view');
}
public function
unset_sesssion_data(){
//loading
session
library
$this->load->library('session');
//removing
session
data
$this->session->unset_userdata('name');
$this->load->view('session_view');
}
}
?>
Create a view file called session_view.php and save it in
application/views/session_view.php
<!DOCTYPE
html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CodeIgniter
Session
Example</title>
</head>
<body>
Welcome <?php
echo
$this->session->userdata('name');
?>
<br>
<a href='http://localhost:85/CodeIgniter-3.0.1/CodeIgniter- 3.0.1/index.php/sessionex/unset'>Click
Here</a>
to
unset
session
data.
</body>
</html>
Make the
changes
in
the
routes.php file
in
application/config/routes.php and
add the following line at the end of the file.
$route['sessionex'] = 'Session_Controller';
Execute
the
above
example
by
using
the
following
address.
Replace
yoursite.com with the URL of your site.
Comments
Post a Comment