Foros del Web » Programando para Internet » PHP »

cuando se destruye la session?

Estas en el tema de cuando se destruye la session? en el foro de PHP en Foros del Web. Cuando cierro el navegador se corta la relacion con la session que se está ejecutando en le server, pero la pregunta es Realmente LA SESSION ...
  #1 (permalink)  
Antiguo 23/02/2005, 15:12
 
Fecha de Ingreso: julio-2003
Mensajes: 95
Antigüedad: 20 años, 9 meses
Puntos: 0
cuando se destruye la session?

Cuando cierro el navegador se corta la relacion con la session que se está ejecutando en le server, pero la pregunta es Realmente LA SESSION SE DESTRUYE?
esto no seria problema pero si los array de session quedan mucho tiempo en cache multiplicado por muchos usuarios en un momento dado puede generar un cuello de botella.
  #2 (permalink)  
Antiguo 23/02/2005, 15:15
 
Fecha de Ingreso: febrero-2005
Mensajes: 670
Antigüedad: 19 años, 2 meses
Puntos: 0
tengo entendido que sí, pero si querés asegurarte podés usar session_destroy()

Suerte
Fede
__________________
Federico H. García
Desarrollo Web
www.federicog.com.ar
  #3 (permalink)  
Antiguo 24/02/2005, 06:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Según describes . .estás asumiendo que propagas el SID en cookies (que es lo que PHP hace por defecto si no se modifica).

En ese modo .. es cierto que si tienes una configuración de tiempo de expiración de tu cookie (para la sesión) = 0 .. al cerrar la última ventana de tu sitio .. la cookie muere (al ser de tipo "sesión") .. con ello .. el SID con respecto al cliente se pierde dicha relación .. En el servidor .. esa sesión bajo ese SID sigue válido por el tiempo que define: session.gc_maxtimelife (que suele ser 1440 segundos= 24 minutos) .. por ende .. en ese tiempo podría si retomo esa SID .. reingresar a la sesión activa.

Pasado ese tiempo .. la sesión pasa a un estado "garbage" .. es decir . .en espera de ser elimidada como tal físicamente del servidor (el archivo que se crea) .. (en este punto ese SID ya no es válido). Ese proceso es iniciado cada X % (porcentaje) de ejecuciones de "session_Start()" (de inicio/uso de sesiones) que define la directiva: session.gc_probality (o algo así se escribe: ver php.ini para más detalles).

Un saludo,
  #4 (permalink)  
Antiguo 24/02/2005, 12:09
 
Fecha de Ingreso: julio-2003
Mensajes: 95
Antigüedad: 20 años, 9 meses
Puntos: 0
en que estoy fallando?
la primer pagina tiene al principio
session_start();ini_set("session.gc_maxlifetime", 60);

es decir cambio el tiempo de expiracion

y el sergundo archivo (pasado por header) tiene

session_start();
echo ini_get('session.gc_maxlifetime');

el tema es que en el primer script coloco el gc_maxtimelife a 60 pero cuando imprimo en la segunda pagina vale 1440
cual es es error?
  #5 (permalink)  
Antiguo 24/02/2005, 12:21
 
Fecha de Ingreso: julio-2003
Mensajes: 95
Antigüedad: 20 años, 9 meses
Puntos: 0
cada debe ir el ini_set en cada script eso lo modifique y los valores que imprime estan correcto pero, no expira la session en el tiempo (10 segundos)
como debo hacer para que expire en este tiempo?
la primer pagina
ini_set("session.gc_maxlifetime", 10);session_start();

la segunda
ini_set("session.gc_maxlifetime", 10);
session_start();
echo ini_get('session.gc_maxlifetime');
  #6 (permalink)  
Antiguo 24/02/2005, 13:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. como propagas el SID? .. en cookies o por el URL .. ese tiempo de expiración tambien determina en su conjunto cuando durará la sesión .. a todo esto en principio dicha directiva se modifica para el tiempo de ejecución de tu script .. no sé si cuando propagas el SID en cookies dicho tiempo se reinicia ..

Un saludo,
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 03:38.