Manual de PHP: Sesiones

Sesiones

Las sesiones se utilizan cuando se necesita que ciertos datos estén disponibles en todas las páginas de un sitio web.

Recursos

Manejo de sesiones

En PHP las sesiones permiten conservar ciertos datos a lo largo de los subsiguientes accesos. A cada visitante que accede a la web se le asigna un identificador único, llamado "session id" (identificador de sesión). Éste se almacena en una cookie o se propaga en la URL.

Las sesiones permiten registrar variables que se conservarán en las siguientes peticiones. Cuando un visitante acceda a la web, PHP comprobará, automáticamente si session.auto_start está puesto a 1 o de forma explícita mediante session_start(), si ha enviado un "session id" con su petición, en cuyo caso se recrean las variables que se habían guardado anteriormente. Todas las variables registradas son almacenadas tras finalizar la petición. Tanto para almacenar la información de la sesión como para recuperarla se utiliza la variable $_SESSION, que es una colección.

Algunas funciones relativas a sesiones son:

  • session_id: lee y/o cambia el "session id".
  • session_start: inicializa los datos de una sesión o la continúa.
  • session_register: registra una variable global.
  • session_is_registered: comprueba si una variable está registrada.
  • session_unregister: des-registra una variable.
  • session_unset: elimina todas las variables de la sesión.
  • session_destroy: destruye todos los datos de una sesión.

Veamos algunos ejemplos de cómo trabajar con sesiones:

  • Primero tenemos que iniciar sesión:
    <?php
    // iniciar sesion
    session_start();
    ?>
  • Ya podemos registrar variables de sesión, por ejemplo para crear la variable autentificado y asignarle el valor true el código será:
    <?php
    // login correcto
    if (!session_is_registered("autentificado")) {
        session_register("autentificado");
    }
    $_SESSION['autentificado'] = "true";
    ?>
  • Para recuperar el valor de una variable de sesión haremos:
    <?php
    // recuperar el valor de la variable de sesion autentificado
    $login = $_SESSION['autentificado'];
    ?>
  • Podemos utilizar las variables de sesión en estructuras de control:
    <?php
    // comprobar si esta logueado
    if (session_is_registered("autentificado")) {
        // esta logueado
        ...
    } else {
        // no esta logueado
        ...
    }
    ?>
  • Para eliminar una variable de sesión haremos:
    <?php
    // eliminar la variable de sesion autentificado (si existe)
    if (session_is_registered("autentificado")) {
        session_unregister("autentificado");
    }
    ?>
  • Para eliminar todas las variables de sesión haremos:
    <?php
    // eliminar todas las variables de sesion
    session_unset();
    ?>
  • Para destruir la sesión haremos:
    <?php
    // destruir la sesion
    session_destroy();
    ?>

Artículos en la categoría "Manual de PHP"

  1. Manual de PHP: Estructuras de control
  2. Manual de PHP: Funciones
  3. Manual de PHP: Objetos
  4. Manual de PHP: Formularios web
  5. Manual de PHP: Imágenes
  6. Manual de PHP: XML
  7. Manual de PHP: MySQL
  8. Manual de PHP: Sesiones
  9. Manual de PHP: Matrices
  10. Manual de PHP: Expresiones regulares
  11. Manual de PHP: Sanear datos de usuario
  12. Manual de PHP: Email
  13. Manual de PHP: Evitar el hotlinking de los buscadores