Foros del Web » Programando para Internet » PHP »

muerte natural de una sesion?

Estas en el tema de muerte natural de una sesion? en el foro de PHP en Foros del Web. - cuando muere automaticamente una sesion? me refiero a que a veces cerrando el navegador, al volver al entrar (aunque sea al instante) me crea ...
  #1 (permalink)  
Antiguo 13/08/2003, 18:26
 
Fecha de Ingreso: agosto-2003
Mensajes: 102
Antigüedad: 20 años, 8 meses
Puntos: 0
muerte natural de una sesion?

- cuando muere automaticamente una sesion?

me refiero a que a veces cerrando el navegador, al volver al entrar (aunque sea al instante) me crea otra.... esto tiene que ser asi?

- otra duda, es cuanto tiempo dura, por ejemplo estoy con la pagina abierta, pero sin hacer ningun clic, digamos 2 horas, se me habra muerto la sesion? cuando se tendria que morir?

Pd. No me digan lo del sesion_destroy o me pasen el link del manual, que no es lo que pido.
  #2 (permalink)  
Antiguo 13/08/2003, 18:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues .. en el manual está la solución ..

Concretamente en las directivas de configuración como

session.gc_probability
session.gc_maxlifetime

y si usas cookies como propagación del SID .. pues también tienes otras tantas directivas que definen tiempos de expiración ..

A su vez algunas de estas directivas de configuración las puedes configurar en tiempo de ejecución con alguna función para tal fin .. Como siempre dicha documentación está en www.php.net xDDDDDD



Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 13/08/2003, 18:58
 
Fecha de Ingreso: agosto-2003
Mensajes: 102
Antigüedad: 20 años, 8 meses
Puntos: 0
pues yo debo ser muy torpe, pero no lo encuentro... tambien es verdad que el ingles no es lo mio... mejor dicho ni de lejos... y por lo menos lo que pone en el manual en español no me ayuda, para que me aclare:

esto pone en el manual:
session.gc_probability especifica la probabilidad de que se inicie la rutina gc (garbage collection - recoleción de basura) en cada petición en porcentaje. Por defecto es 1.

session.gc_maxlifetime especifica el número de segundos tras los cuales los datos se considerarán como 'basura' y serán eliminados.

Traduccion a un lenguaje mas llano? como tendria que definirlas? asi?

(para que caduquen cada 10 minutos, si lo hago asi, caducaran pasados los 10 minutos aunque el usuario este navegando, o seran 10 minutos a partir del ultimo clic)
session.gc_maxlifetime = 600;

(tendria que dar algun valor a este parametro o por defecto ya esta bien?)
session.gc_probability

Luego comentas, que hay directivas que definen tiempos de expiracion? para las cookies ok, pero para el SID?

en cuanto a lo de que la session expire al cerrar el navegador?


Pd. Como se puede observar de sesiones no tengo ni idea, para mi es un concepto nuevo con el que no estoy familiarizado.

Última edición por Nark; 13/08/2003 a las 19:10
  #4 (permalink)  
Antiguo 16/08/2003, 10:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Yo uso las directivas:

session.gc_probability = 1
session.gc_maxlifetime =0

Vendría a ser equivalente a: "Muere sesión al cerrar navegador" (al cerrar todas las ventanas abiertas para esa sesion).

También uso propagación del SID en cookie (session.use_cookies = 1) así que uso a su vez:

session.cookie_lifetime =0

(Esto así para que la cookie a su vez muera cuando se "cierre" la ventana abierta para esa cookie y sea acorde al tiempo que puse en maxtimelife ...)

El valor de gc_probability depende mucho del numero de ejecuciones de session_start() .. (que vá directamente proporcinal al numero de visitas y ejecuciones de tus scripts PHP ..)

El SID es el identificador único de sesión .. que se compone del nombre de la sesion y del ID de la própia sesión que a su vez se toma como nombre del archivo (por defecto) que contienen los datos de dicha sesión única abierta ..

Sobre el tiempo de expiración y que el usuario siga navegando ... Si no me equivoco el tiempo que defines en gc_max... empieza a correr una vez que no se ha usado el SID .. osease, si tu tienes una apliación PHP que se compone de X scripts donde vas propagando el SID (sea en una cookie, por el URL .. etc) .. El "contador" de tiempo de expiración se reinicializa al llegar al siguiente script que use sesiones (session_start()) y le llegue un SID válido propagado ..

(Por lo menos si te fijas .. yo uso session.gc_max... a 0 .. con lo cual siempre me tendría que "morir" la sesión al pasar a otro script, y no es así .. si estoy dentro de la misma secuencia de scripts que usan sesiones y el mismo SID (ejemplo: script_1.php (inicio sesion con session_start() .. me genera un SID ...) paso al script_2.php por un link o formulario (propaga el SID automáticamente o manualmente .. pero es el mismo) --> etc con más scripts ..) la sesión no muere .. Pero, si cierro todas las ventanas abiertas de mi navegador de esa secuencia de script y entro a cualquier script de esa secuencia .. Se genera un nuevo SID y .. al cerrar todas las anteriores ventanas el SID expiró .. mejor dicho pasá al modo "garbage" (basura) en espera de que se borre fisicamente el archivo creado .. pero ya no es válido si lo llamases con un URL desde "favoritos" o cortando/pegando ese LINK con ese SID propagado (si usases propagación por el URL ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:14.