Ver Mensaje Individual
  #8 (permalink)  
Antiguo 27/12/2004, 07:34
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. a todo esto .. como propagas el SID?

El SID lo puedes propagar por el URL o por cookies.

En cuanto a tiempos de expiración es la directiva: session.gc_maxlifetime la que define en última instancia la validez de un SID creado (Identificador único de sesión). Ahora .. el SID como te he comentado se puede propagar por cookies o por el URL .. Si lo haces por cookies (lo más seguro y lo que "asumes" en tu código pues no se vé que lo hagas tu a mano en el código ...). Si propagas el SID en cookies, .. la cookie también tiene un tiempo de expiración que define "cuanto tiempo está en ese cliente el SID" .. si lo usas a "0" .. durará lo que el cliente tenga abiertas tus páginas de tu sitio .. si usas otros tiempos .. durante ese tiempo ( y siempre que sea menor que el que define gc_max....) podrás tomar denuevo tu SID válido y seguir usandolo.

El trabajo con seseiones se suele configurarar si propagas el SID en cookies con una vida de la cookie de "0" (segundos) .. es decir .. una cookie tipo "de sesión" .. al cerrar todas las ventanas de tu sitio el SID se pierde en el cliente que la creó y con ello en "enlace" con el servidor. Pese que el SID siga siendo válido en el "servidor" .. "nadie" conoce (el cliente que la creó) que ID tiene. Puedes combinar esto con un tiempo menor de session.gc_maxtimelife .. y será esta la propiedad que debes controlar si propagas el SID enteramente por el URL.

Algunas directivas de PHP en general se pueden modificar en tiempo de ejecución vía la función:

ini_set()

ejemplo:

ini_set("session.xxxxxx","valor");

(siempre antes de los session_Start() y otras funciones de PHP para sesiones).

Un saludo,