CodeIgniter - Gestione delle sessioni

Quando creiamo siti web, spesso abbiamo bisogno di tenere traccia dell'attività e dello stato dell'utente e per questo scopo dobbiamo usare session. CodeIgniter ha una classe di sessione per questo scopo.

Inizializzazione di una sessione

I dati delle sessioni sono disponibili a livello globale attraverso il sito, ma per utilizzare quei dati dobbiamo prima inizializzare la sessione. Possiamo farlo eseguendo la seguente riga nel costruttore.

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

Dopo aver caricato la libreria della sessione, puoi semplicemente utilizzare l'oggetto della sessione come mostrato di seguito.

$this->session

Aggiungi dati di sessione

In PHP, usiamo semplicemente $_SESSION array per impostare tutti i dati nella sessione come mostrato di seguito.

$_SESSION[‘key’] = value;

Dove 'key'è la chiave di array e value è assegnato a destra di uguale al segno.

La stessa cosa può essere eseguita in CodeIgniter come mostrato di seguito.

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

set_userdata()la funzione accetta due argomenti. Il primo argomento,some_name, è il nome della variabile di sessione, sotto la quale, some_value verrà memorizzato.

set_userdata() supporta anche un'altra sintassi in cui è possibile passare array per memorizzare valori come mostrato di seguito.

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

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

Rimuovi i dati della sessione

In PHP, possiamo rimuovere i dati memorizzati nella sessione utilizzando il unset() funzionare come mostrato di seguito.

unset($_SESSION[‘some_name’]);

La rimozione dei dati di sessione in CodeIgniter è molto semplice come mostrato di seguito. La versione sottostante diunset_userdata() la funzione rimuoverà solo una variabile dalla sessione.

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

Se desideri rimuovere più valori dalla sessione o rimuovere un intero array, puoi utilizzare la versione di seguito di unset_userdata() funzione.

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

Recupera i dati della sessione

Dopo aver impostato i dati nella sessione, possiamo anche recuperare quei dati come mostrato di seguito. Userdata()a questo scopo verrà utilizzata la funzione. Questa funzione torneràNULL se i dati a cui stai tentando di accedere non sono disponibili.

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

Esempio

Crea una classe controller chiamata Session_controller.php e salvalo 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_session_data() { 
         //loading session library
         $this->load->library('session');
			
         //removing session data 
         $this->session->unset_userdata('name'); 
         $this->load->view('session_view'); 
      } 
		
   } 
?>

Crea un file di visualizzazione chiamato session_view.php e salvalo 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>

Apporta le modifiche nel file routes.php file in formato application/config/routes.php e aggiungi la seguente riga alla fine del file.

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

Eseguire l'esempio precedente utilizzando il seguente indirizzo. Sostituireyoursite.com con l'URL del tuo sito.

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