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