El comportamiento de estas funciones se ve afectado por la configuración de php.ini.
Nombre | Por defecto | Cambiable | Historial 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_PERDIR | |
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_strict_mode | "0" | PHP_INI_ALL | Disponible desde PHP 5.5.2. |
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. Eliminado en PHP 5.4.0. |
session.bug_compat_warn | "1" | PHP_INI_ALL | Disponible desde PHP 4.3.0. Eliminado en PHP 5.4.0. |
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. |
session.upload_progress.enabled | "1" | PHP_INI_PERDIR | Disponible desde PHP 5.4.0. |
session.upload_progress.cleanup | "1" | PHP_INI_PERDIR | Disponible desde PHP 5.4.0. |
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR | Disponible desde PHP 5.4.0. |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR | Disponible desde PHP 5.4.0. |
session.upload_progress.freq | "1%" | PHP_INI_PERDIR | Disponible desde PHP 5.4.0. |
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR | Disponible desde PHP 5.4.0. |
El sistema de administración de sesiones admite varias opciones de configuración que se pueden colocar en el fichero php.ini. Se dará una visión general breve.
session.save_handler
string
session.save_path
string
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 deben 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.
El módulo de almacenamiento de ficheros crea ficheros usando el modo 600 de forma predeterminada. Este valor se puede cambiar con el argumento opcional MODE: N;MODE;/path, donde MODE es la representación octal del modo. Establecer MODE no afecta al proceso umask.
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.
Nota: 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.
session.name
string
session.auto_start
boolean
session.serialize_handler
string
session.gc_probability
integer
session.gc_divisor
integer
session.gc_maxlifetime
integer
Nota:
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.
Nota: 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.
session.referer_check
string
session.entropy_file
string
Nota: A partir de PHP 5.4.0 session.entropy_file usa de forma predeterminada /dev/urandom o /dev/arandom si están disponibles. En PHP 5.3.0, esta directiva se deja vacía por omisión.
session.entropy_length
integer
session.use_strict_mode
boolean
Nota:
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.
session.cache_limiter
string
session.cache_expire
integer
session.use_trans_sid
boolean
Nota: 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.
session.bug_compat_42
boolean
session.bug_compat_warn
boolean
session.hash_function
mixed
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().
Nota:
Este ajuste fue introducido en PHP 5.
session.hash_bits_per_character
integer
Nota:
Esto fue introducido en PHP 5.
Nota: Si quiere compatibilidad para HTML/XHTML estricto, elimine la entrada form y use las etiquetas <fieldset> alrededor de sus campos de formulario.
session.upload_progress.enabled
boolean
session.upload_progress.cleanup
boolean
Nota: Es muy recomendado mantener esta opción habilitada.
session.upload_progress.prefix
string
session.upload_progress.name
string
session.upload_progress.freq
mixed
session.upload_progress.min-freq
integer
Los ajustes de configuración track_vars y register_globals influyen en cómo las variables de sesión se almacenan y se restablecen.
El progreso de subida no será registrado a no ser que session.upload_progress.enabled esté habilitado, y la variable $_POST[ini_get("session.upload_progress.name")] esté definida. Ver Session Upload Progress para más información de como funciona.
Nota:
A partir de PHP 4.0.3, track_vars está siempre activado.