Manejo de sesiones Sesiones &reftitle.intro; El soporte para sesiones en PHP consiste en una forma de preservar cierta información a lo largo de accesos subsiguientes. A un visitante que accede a un sitio web se el asigna un id único, también llamado id de sesión. Éste es almacenado en una cookie en la parte del cliente o se propaga en el URL. El soporte para sesiones permite almacenar los datos entre peticiones en el array superglobal $_SESSION. Cuando un visitante acceda a un sitio web, PHP comprobará automáticamente (si session.auto_start está establecido a 1), o sobre su petición (explícitamete a través de session_start), si se ha enviado un id de sesión específico con la petición. Si éste es el caso, se recrea el entorno anteriormente guardado. Si se activa session.auto_start, la única manera de colocar objetos en las sesiones es cargar su definición de clase usando auto_prepend_file , en el que, además de cargar la definición de clase, se tendrá que emplear serialize para serializar el objeto y unserialize para deserializarlo después. $_SESSION (y todas las variables registradas) son serializadas internamente por PHP utilizando el gestor de serialización especificado en el ajuste ini session.serialize_handler, una vez finalizada la solicitud. Las variables registradas que están sin definir son marcadas como no definidas. En accesos subsiguientes, éstas no estarán definidas por el módulo de sesión a menos que el usuario las defina después. Debido a que los datos de sesión son serializados, las variables resource no pueden ser almacenadas en la sesión. Los gestortes serializados (php y php_binary) heredan las limitaciones de register_globals. Por lo tanto, no se pueden usar índices númericos o de string que contengan los caracteres especiales (| y !). Si se utilizan, se finalizará con errores al cierre del script. php_serialize no tiene tales limitaciones. php_serialize está disponible desde PHP 5.5.4. Por favor, observe que al trabajar con sesiones, no se crea un registro de una sesión hasta que una variable haya sido registrada usando la función session_register o añadiendo una nueva clave al array superglobal $_SESSION. Esto siempre es así, sin importar si una sesión ha sido iniciada usando la función session_start. PHP 5.2.2 introdujo una característica no documentada para almacenar ficheros de sesiones en "/tmp" incluso si open_basedir estaba habilitado y "/tmp" no estaba explícitamente añadido a la lista de rutas permitidas. Esta característica ha sido eliminada de PHP a partir de PHP 5.3.0. &reference.session.setup; &reference.session.constants; &reference.session.examples; &reference.session.upload-progress; &reference.session.security; &reference.session.reference; &reference.session.sessionhandler; &reference.session.sessionhandlerinterface;