PHP 8.6.0 RC3 available for testing

Gestión de sesiones

Introducción

El soporte de sesiones de PHP es un medio para preservar datos entre varios accesos.

Cada visitante que accede a su página web se le asigna un identificador único, llamado "identificador de sesión". Puede almacenarse en una cookie o propagarse en la URL.

El soporte de sesiones permite almacenar datos entre las peticiones en el array superglobal $_SESSION. Cuando un visitante accede a su sitio, PHP verificará automáticamente (si session.auto_start está activado) o bajo demanda (explícitamente con session_start()) si existe una sesión con el mismo nombre. En caso afirmativo, el entorno previamente guardado será recreado.

Precaución

Si se activa session.auto_start entonces el único medio de poner objetos en la sesión es cargar las definiciones de clase con auto_prepend_file en el cual se cargan las definiciones necesarias, o bien se deberá utilizar serialize() en su objeto, y unserialize() para recuperarlo.

La variable $_SESSION (y todas las variables registradas) son serializadas internamente por PHP utilizando el gestor de serialización especificado por la opción de configuración session.serialize_handler, después de la ejecución del script PHP. Las variables que están indefinidas son marcadas como tales. En accesos posteriores, no estarán definidas, hasta que el usuario lo haga.

Advertencia

Debido a que los datos de sesión son serializados, las variables de tipo resource no pueden almacenarse en una sesión.

Los gestores de serialización php y php_binary imponen restricciones a las claves de nivel raíz de $_SESSION. Las claves anidadas dentro de arrays u objetos almacenados en la sesión no están sujetas a estas restricciones. No se permiten las siguientes claves de nivel raíz:

  • Las claves numéricas (por ejemplo $_SESSION[0]). Estas claves se omiten al escribir la sesión, y se emite una advertencia.

  • Las claves de tipo string que contienen | cuando se utiliza el gestor de serialización php. El uso de una clave de este tipo provoca un fallo en la escritura de la sesión (y una advertencia a partir de PHP 8.5.0).

El gestor php_serialize no tiene estas limitaciones, y puede utilizarse cuando deban almacenarse en la raíz de $_SESSION claves numéricas o claves que contengan |.

Nota:

Tenga en cuenta que al trabajar con sesiones, un registro en la sesión no será creado hasta que la variable sea registrada añadiendo una clave al array superglobal $_SESSION. Esto es válido independientemente de que se haya iniciado o no una sesión llamando a la función session_start().

+add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top