lunes, 8 de julio de 2013

Manejo de sesiones en PHP


Sesiones en PHP 

Las sesiones en PHP son una forma de mantener ciertos datos de un visitante entre los diversos accesos una web. De esta forma se pueden crear aplicaciones donde se le muestra al usuarios datos personalizados de acuerdo a las preferencias o acciones del usuario.

Las sesiones se manejan internamente por un identificador llamado SID (Session ID) el cual esta asociado a una única sesión y que ayuda a identificar el contenido de la sesión actual. Esta variable se propaga automaticamente a traves de Cookies o mediante URL.

Manejo de sesiones en PHP

Todas la variables de sesión son accesibles mediante arrays en la variable global $_SESSION. Adicionalmente ofrece una serie de funciones que permiten manejar detalladamente las sesiones de manera sencilla:
  • session_start inicializa una sesión y crea el identificador de sesión.
  • session_id devuelve el identificador de la sesión actual.
  • session_regenerate_id genera un nuevo identificador para la sesión actual.
  • session_unset limpia todas la variables de sesión registradas.
  • session_destroy elimina todas la variables de sesión registradas.

Crear variables de Sesión

Si deseamos crear variables de sesión para que se puedan utilizar a través de diferentes páginas inicializamos el manejo de sesiones con al función session_start y luego guardamos el dato deseado como variable de sesión utilizando la variable global $_SESSION.
  1. // home.php
  2. session_start();
  3. $_SESSION["country"] = "Peru";
Podríamos mejorar el código si verificamos la existencia de la variable de sesión, si no existe entonces le asignamos un valor.
  1. // home.php
  2. session_start();
  3. if (!isset($_SESSION["country"])) {
  4.     $_SESSION["country"] = "Peru"; 
  5. }

Recuperar variables de Sesión

En las páginas siguientes podríamos acceder a las variables de sesión utilizando:
  1. // user.php
  2. session_start();
  3. echo $_SESSION["country"];
Podríamos utilizar las variables de sesión para verificar si se han hecho acciones previas por parte del usuario, como haber seleccionado tu país por ejemplo si aún no lo ha hecho lo redireccionamos a la página inicial.
  1. // user.php
  2. session_start();
  3. if (!isset($_SESSION["country"])) {
  4.     header("Location: home.php");   
  5. }
  6. echo $_SESSION["country"];

Eliminando datos de sesión

Si deseamos eliminar una determinada variable de sesión le asignamos un valor vacío.
  1. // clear.php
  2. session_start();
  3. $_SESSION["country"] = "";
Ahora si deseamos eliminar todas las variables de sesión lo hacemos de la siguiente forma:
  1. // clear.php
  2. session_start();
  3.  
  4. session_unset();
  5. session_destroy();

Depurando Sesiones

Si se desea depurar las variables de sesión con sus respectivos valores se puede utilizar la función print_r.
  1. // debug.php
  2. session_start();
  3. print_r($_SESSION);

Para mas información acerca del manejo y de las funciones disponibles para el manejo de sesiones pueden leer PHP: Session Functions. Para concluir les dejo los archivos fuente de este artículo para que puedan hacer sus pruebas.

No hay comentarios:

Publicar un comentario

Ingresa tu comentario asertivo =)