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.
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.
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
) heredan las limitaciones de
register_globals. Por lo tanto, los índices numéricos o los índices
en forma de string que contienen caracteres especiales
(|
y !
) no
pueden utilizarse. Su uso generará errores al final del script. php_serialize
no tiene este tipo de limitaciones.
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 solo es válido si se ha iniciado una sesión llamando a la función session_start().