Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/07/2004, 14:49
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Seguro que ya conoceras que haciendo un "session_destroy()" "matas" la sesión en curso. Esa es una funció que has de "invocar" a mano: en link que apunte a tu script de "mata_sesion" o similar.

Algunas soluciones se basan en usar eventos de javascript tipo "onUnload()" para llamar a ese "mata_sesion.php" script PHP .. pero eso depende enteramente del "cliente" (navegador) y sobre todo de que "salga" de su sesión por un script tuyo que haga salida al navegador (HTML -> javacript) .. por qué si lo hace en un script de proceso PHP que no devuelve ninguna salida al navegador .. ya no funcionaría este método.

Otro método vía PHP .. algo más seguro sería controla "la conexión" de PHP al cliente con las funciones tipo:

http://www.php.net/manual/en/feature...n-handling.php

Tal vez por ahí se pueda hacer algo para detectar cuando el cliente cierra la conexión .. Pero todo eso se refiere a -mientras está ejecutandose PHP- .. es decir, cuando PHP ya entrega su resultado (página HTML .. etc) ya no tienen nada que hacer dichas funciones.

Lo ideal es que sepas bien como estás propagando el SID .. por qué si lo haces por cookies por ejemplo ajustando el valor de expiración de estas (a cero).. ya conseguiras el efecto de que si cierra toda ventana de tu sitio . .se perderá el SID. En última instancia el tiempo de expiración de Un SID válido lo determina la directiva (php.ini):
session.gc_maxlifetime

Pero esto va en conjunto con el método de propagación del SID .

Un saludo,