Session Management in PHP Codeigniter

To store data in session first of all we need to initialize the session.
In PHP we initialize the session by simply writing the session_start(); function.

But in CodeIgniter, We can do that by executing the following line in the constructor.

$this->load->library('session');

The same thing can be done in CodeIgniter as shown below.

$this->session->set_userdata(‘session name', ‘any value’);

set_userdata() function takes two arguments. The first argument, session name, is the name of the session variable and here any value is the value assigned to the session. We can use set_userdata() function to pass an array to store values as shown below.

set_userdata() function also supports another syntax in which you can pass an array to store values as shown below.

$newdata = array( 
   'username'  => 'mohammad', 
   'email'     => 'mohammad@codeone.in', 
   '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[‘example_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 the session.

$this->session->unset_userdata('example_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:-

Controller File

Create a controller class called SessionController.php and save it in application/controller/SessionController.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_session_data() { 
         //loading session library
         $this->load->library('session');
			
         //removing session data 
         $this->session->unset_userdata('name'); 
         $this->load->view('session_view'); 
      } 
		
   } 
?>

View file

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/CodeIgniter3.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';

Leave a Reply

Your email address will not be published. Required fields are marked *