Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/05/2005, 06:43
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. en principio como ya sabes .. PHP incorpora "de série" su própia gestión de sesiones, donde "por defecto" (se puede cambiar) se crean archivos en el servidor que son los "contenedores" de tus variables de sesión. La "asociación" (o correspondencia) entre el "cliente" que las crea y a quien le pertence esa sesión (archivo del servidor) lo hace por el SID (Identificador de sesión: nombre_sesion+id_sesion). Ese "SID" se puede propagar en cookies o en el URL (tu eliges como lo vas hacer en tu aplicación y en consecuencia ajustas la configuración de PHP).

Bien ... eso es un "método" de gestión de sesiones. De por sí si has trabajado con ellas podrás ver que tiene algunos "problemas"; por ejemplo ... identificar cuanto tiempo le queda de vida a una sesión determinada .. o cuantas sesiones tenemos activas no es posible obtener esos datos con la gestión de sesiones comunes de PHP.

Por esto .. si quieres tener un control más "fino" sobre tus sesiones, se suelen implementar dichos sistemas "a mano". Si nos fijamos en la teoría de lo qu es una "sesión" .. lo único que necesitas es:

1) identificar como único N datos que pertenezcan a 1 cliente
2) almacenar esos datos en algún sistema.

EL punto 1 .. sería la de crear un "SID" (identificador único de sesión) que como suele ser es un dato aletaorio y que no se repita. Ese dato se ha de propagar al cliente en los links que este ocasione para que puedas hacer referencia en tu sistema de almacenamiento y puedas leer/escribir datos en ella.

El "médio" de almacenamiento podría ser un archivo de texto plano .. pero también (mejor administrable) una Base de datos. De esta forma .. puedes hacer una consulta a tu BD (tabla de "sesiones") y fácilmente obtener datos como "cuantas sesiones hay activas" ... cuanto tipo le queda (si defines datos anexos como "comienzo sesión" y fecha de última actualización .. ) etc.

Un saludo,