CodeIgniter - Gestión de sesiones

Al crear sitios web, a menudo necesitamos realizar un seguimiento de la actividad y el estado del usuario y, para ello, tenemos que utilizar session. CodeIgniter tiene una clase de sesión para este propósito.

Inicializar una sesión

Los datos de las sesiones están disponibles globalmente a través del sitio, pero para usar esos datos, primero debemos inicializar la sesión. Podemos hacerlo ejecutando la siguiente línea en constructor.

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

Después de cargar la biblioteca de sesión, simplemente puede usar el objeto de sesión como se muestra a continuación.

$this->session

Agregar datos de sesión

En PHP, simplemente usamos $_SESSION array para configurar cualquier dato en la sesión como se muestra a continuación.

$_SESSION[‘key’] = value;

Dónde 'key'es la clave de matriz y value se asigna en el lado derecho del signo igual.

Lo mismo se puede hacer en CodeIgniter como se muestra a continuación.

$this->session->set_userdata('some_name', 'some_value');

set_userdata()La función toma dos argumentos. El primer argumento,some_name, es el nombre de la variable de sesión, bajo la cual, some_value será almacenado.

set_userdata() La función también admite otra sintaxis en la que puede pasar una matriz para almacenar valores como se muestra a continuación.

$newdata = array( 
   'username'  => 'johndoe', 
   'email'     => '[email protected]', 
   'logged_in' => TRUE
);  

$this->session->set_userdata($newdata);

Eliminar datos de sesión

En PHP, podemos eliminar los datos almacenados en la sesión usando el unset() funciona como se muestra a continuación.

unset($_SESSION[‘some_name’]);

Eliminar datos de sesión en CodeIgniter es muy simple como se muestra a continuación. La siguiente versión deunset_userdata() La función eliminará solo una variable de la sesión.

$this->session->unset_userdata('some_name');

Si desea eliminar más valores de la sesión o eliminar una matriz completa, puede usar la siguiente versión de unset_userdata() función.

$this->session->unset_userdata($array_items);

Obtener datos de la sesión

Después de configurar los datos en la sesión, también podemos recuperar esos datos como se muestra a continuación. Userdata()La función se utilizará para este propósito. Esta función volveráNULL si los datos a los que intenta acceder no están disponibles.

$name = $this->session->userdata('name');

Ejemplo

Crea una clase de controlador llamada Session_controller.php y guárdalo en 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_session_data() { 
         //loading session library
         $this->load->library('session');
			
         //removing session data 
         $this->session->unset_userdata('name'); 
         $this->load->view('session_view'); 
      } 
		
   } 
?>

Crea un archivo de vista llamado session_view.php y guárdalo en 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>

Realice los cambios en el routes.php presentar en application/config/routes.php y agregue la siguiente línea al final del archivo.

$route['sessionex'] = 'Session_Controller';

Ejecute el ejemplo anterior utilizando la siguiente dirección. Reemplazaryoursite.com con la URL de su sitio.

http://yoursite.com/index.php/sessionex