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