El comportamiento de estas funciones se ve afectado por la configuración de php.ini.
Nombre | Por Defecto | Variable | Registro de cambios |
---|---|---|---|
session.save_path | "" | PHP_INI_ALL | |
session.name | "PHPSESSID" | PHP_INI_ALL | |
session.save_handler | "files" | PHP_INI_ALL | |
session.auto_start | "0" | PHP_INI_ALL | |
session.gc_probability | "1" | PHP_INI_ALL | |
session.gc_divisor | "100" | PHP_INI_ALL | Disponible desde PHP 4.3.2. |
session.gc_maxlifetime | "1440" | PHP_INI_ALL | |
session.serialize_handler | "php" | PHP_INI_ALL | |
session.cookie_lifetime | "0" | PHP_INI_ALL | |
session.cookie_path | "/" | PHP_INI_ALL | |
session.cookie_domain | "" | PHP_INI_ALL | |
session.cookie_secure | "" | PHP_INI_ALL | Disponible desde PHP 4.0.4. |
session.cookie_httponly | "" | PHP_INI_ALL | Disponible desde PHP 5.2.0. |
session.use_cookies | "1" | PHP_INI_ALL | |
session.use_only_cookies | "1" | PHP_INI_ALL | Disponible desde PHP 4.3.0. |
session.referer_check | "" | PHP_INI_ALL | |
session.entropy_file | "" | PHP_INI_ALL | |
session.entropy_length | "0" | PHP_INI_ALL | |
session.cache_limiter | "nocache" | PHP_INI_ALL | |
session.cache_expire | "180" | PHP_INI_ALL | |
session.use_trans_sid | "0" | PHP_INI_ALL | PHP_INI_ALL en PHP <= 4.2.3. PHP_INI_PERDIR en PHP < 5. Disponible desde PHP 4.0.3. |
session.bug_compat_42 | "1" | PHP_INI_ALL | Disponible desde PHP 4.3.0. Esta opción obsoleta será sin duda eliminada en el futuro. |
session.bug_compat_warn | "1" | PHP_INI_ALL | Disponible desde PHP 4.3.0. Esta opción obsoleta será sin duda eliminada en el futuro. |
session.hash_function | "0" | PHP_INI_ALL | Disponible desde PHP 5.0.0. |
session.hash_bits_per_character | "4" | PHP_INI_ALL | Disponible desde PHP 5.0.0. |
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | Disponible desde PHP 4.0.4. |
El sistema de administración de sesiones soporta varias opciones de configuración que se pueden colocar en el archivo php.ini. Se dará una visión general breve.
Hay un argumento opcional N para esta directiva que determina el número de niveles de directorios por donde los archivos de sesión se desplegarán. Por ejemplo, establecerlo a '5;/tmp' puede terminar en crear un archivo de sesión y ubicación como /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If . Para usar N se debe crear todos estos directorios antes de utilizarlo. Para realizar esto, existe un pequeño script tipo shell en ext/session que se llama mod_files.sh, con una versión de Windows llamada mod_files.bat. Observe también que si N se usa y es más grande que 0 no se llevará a cabo la recolección de basura automática, vea una copia de php.ini para más información. También, si usa N, asegúrese de encerrar session.save_path entre "comillas" ya que el separador (;) también se usa para comentarios en php.ini.
Si se deja esta configuración para un directorio legilble por todo el mundo, tal como /tmp (por defecto), otros usuarios en el servidor pueden ser capaces de secuestrar sesiones obteniendo la lista de archivos de ese directorio.
Note: Antes de PHP 4.3.6, los usuarios de Windows tenían que cambiar esta variable para usar las funciones de sesiones de PHP. Se debe especificar una ruta válida, p.ej.: c:/temp.
Note:
Si diferentes scripts tienen diferentes valores de session.gc_maxlifetime pero comparten la misma ubicación para almacenar la información de sesión, la información del script con el mínimo valor será limpiada. En este caso use esta directiva junto con session.save_path.
Note: Si está usando el gestor de sesiones basado en archivos predeterminado, su sistema de archivos debe llevar la cuenta de los tiempos de acceso (atime). FAT de Windows no lo hace, por lo que tendrá que utilizar otro método para manejar la recolección de basura de su sesión si está utilizando un sistema de archivos FAT o cualquier otro sistema de archivos donde la cuenta de atime no esté disponible. Desde PHP 4.2.3 se ha usado mtime (fecha de modificación) en vez de atime. Por lo tanto, no tendrá problemas con sistemas de archivos donde la cuenta de atime no esté disponible.
Note:
La marca de tiempo de caducidad se establece relativa a la hora del servidor, la cúal no es necesariamente la misma que la hora del navegador del cliente.
Note: Para PHP 4.1.2 o anterior, está habilitado compilando PHP con --enable-trans-sid. Desde PHP 4.2.0, la característica trans-sid es siempre compilada. La administración de sesiones basadas en URL tienen riesgos de seguridad adicionales comparada con la administración de sesiones basdas en cookies. Los usuarios pueden enviar una URL que contenga un ID de sesión activo a sus amigos mediante email o los usuarios pueden guardar una URL que contenga una ID de sesión en sus marcadores y acceder a su sitio siempre con el mismo ID de sesión, por ejemplo.
Desde PHP 5.3.0 también es posible especificar cualquier algoritmo porporcionado por la extensión hash (si está disponible), como sha512 o whirlpool. Una lista completa de los algoritmos soportados se puede obtener con la función hash_algos().
Note:
Este ajuste fue introducido en PHP 5.
Note:
Esto fue introducido en PHP 5.
Note: Si quiere compatibilidad para HTML/XHTML estricto, elimine la entrada form y use las etiquetas <fieldset> alrededor de sus campos de formulario.
Los ajustes de configuración track_vars y register_globals influyen en cómo las variables de sesión se almacenan y se restablecen.
Note:
A partir de PHP 4.0.3, track_vars está siempre activado.