There are no translations available.
Una cookie de sesión de PHP (en su mayoría se define como PHPSESSID) tiene un tiempo de vida por defecto hasta que se cierra el navegador. Esto está bien para muchas aplicaciones web, pero en algunos casos esto no es deseado y la vida se puede cambiar.
Otra cuestión pertinente período de sesiones-es el recolector de basura de PHP. Cuando se crea un período de sesiones, un archivo se crea en el servidor - por ejemplo, en / tmp en servidores linux. Desde la identificación de la sesión es un identificador único, que los archivos de sesión se acumulan con el tiempo - el recolector de basura se hará cargo de estos archivos y eliminar archivos viejos de vez en cuando. PHP tiene una especie de built-in "de balanceo de carga" característica de este recolector de basura, de modo que los viejos archivos de sesión no se eliminan en cada período de sesiones y cada solicitud, pero con una cierta probabilidad. El tiempo de espera predeterminado para la sesión de los archivos es 1440 segundos o 24 minutos. Así que una sesión se puede borrar el archivo después de ese tiempo, pero puede residir en el servidor más tiempo, dependiendo de la cantidad de sesiones creado - aquí viene la probabilidad en el juego.
En la misma documentación de php.net -> sesiones tienen la descripción de las directivas:
session.gc_maxlifetime=integer
Especifica el número de segundos luego de los cuales los datos son vistos como 'basura', y son limpiados. La recolección de basura ocurre durante el comienzo de sesión.
Note: Si diferentes scripts tienen diferentes valores de session.gc_maxlifetime pero comparten el mismo sitio de almacenamiente de datos de sesión, entonces el script con el valor mínimo estará limpiando los datos. En este caso, use esta directiva junto con session.save_path.
Note: Si se encuentra usando el gestor de sesiones basado en archivos predeterminado, su sistema de archivos debe llevar cuenta de los tiempos de acceso (atime). El sistema FAT de windows no lo hace, así que tendrá que implementar otra manera de gestionar la recolección de basura en sus sesiones si está atascado con un sistema de archivos FAT, o cualquier otro sistema de archivos en donde no se encuentre disponible el manejo de valores atime. A partir de PHP 4.2.3, se ha usado mtime (fecha de modificación) en lugar de atime. De este modo, usted no tendrá problemas con sistemas de archivos en donde el rastreo de atime no se encuentra disponible.
Si usamos tiempo "0" (segundos) en esa directiva, en teoría la sesión "morirá" cuando se cierre el navegador .
-
session.gc_probability=integer
En conjunto con session.gc_divisor, es usado para manejar la probabilidad de que la rutina de recolección de basura se inicie. Su valor predeterminado es 1. Vea session.gc_divisor para más detalles.
session.gc_divisor = integer (sólo desde PHP 4.3.0 en adelante).
Session.gc_divisor, junto con session.gc_probability, define la probabilidad de que el proceso de recolección de basura inicie en cada arranque de sesión. La probabilidad es calculada usando gc_probability/gc_divisor, p.ej. 1/100 quiere decir que existe un 1% de probabilidad de que el proceso de recolección inicie para cada petición. El valor predeterminado de session.gc_divisor es 100.
Esas directivas indican "cuando" pasará ese "camion de la basura" a borrar esos archivos físicamente del servidor. Se expresa en porcentaje de veces que se ejecute un inicio de sesiones (cada vez que se haga un session_start()). Por eso depende mucho de las condiciones reales de uso del sistema basado en sesiones que se use.
Si tienes "pánico" a que esas sesiones permanezcan demasiado tiempo en el sistema de archivos del servidor y no tienes acceso al "php.ini" como para cambiar el estado de esas directivas, con un ini_set() o .httpacces se pueden "setear".
Tambien, puedes "llevarte" tus sesiones (archivos) a un directorio de tu sitio y borrarlo por tus própios scripts (hasta alguno que ejecutes bajo un CRON de sistema o similar) como si de cualquier archivo se tratase (haciendo un unlink()).
Esta "funcionalidad" la puedes controlar con la función:
session_save_path()
Ejemplo:
ini_set("session.gc_probability",100);
ini_set("session.gc_divisor",100);
ini_set("session.gc_maxlifetime",10);
session_start();
?>