Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/11/2006, 08: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
Cita:
Iniciado por pekpon Ver Mensaje
lo probare pero no era el sistema que buscaba.

De todas formas gracias y haber si alguien sabe otra forma.

Saludos,
Realmente no puedes confiar en rutinas javascript para detectar si se cerró el navegador .. Sí, en javascript tienes el evento "onUnload()" .. pero que pasa si se "apaga de golpe" ese PC? a tu rutina javascript no le dará tiempo a ejecutar el "onUnload()" que llama a tu script PHP de "logout" para poner tu flag a 0 .. así que estás con el mismo problema que tienes ahora.

Por eso insisto que aquí hay que considerar un "margen de error" de cuando salió tu usuario del sistema .. el margen de error (tiempo) lo defines tú .. y eso irá en función de que tan "activo" tu usuario puede ser en tu sistema. En algunos sistemas de iteracción con el sistema constante (que mueven muchas páginas .. ) ahí puedes acortar ese tiempo .. en otro tipo de comportamiento de tus usuarios en el sistema tendrás que dar más tiempo.

Por otro lado, tu puedes implementar funciones para "recargar" un frame/iframe (oculto) en el cliente constantemente para "indicar al servidor" que tu cliente sigue ahí .. El margen de error será en ese caso justo el que indiques en esa "recarga" .. (Puede usar técnicas como AJAX para este propósito también).

El caso que estas "recargas" de página (en el frame oculto ...) implican un consumo excesivo de tu "tasa de transferencia" .. asiganda, una sobrecarga de tu servidor HTTP excesiba.

Realmente este ambiente de programación "cliente-servidor" bajo un lenguaje del lado del servidor como PHP y un cliente como un "navegador" no está pensada para mantener conexiones ... De hecho fijate como es el proceso de una "página" que sirve tu servidor HTTP: .. tu la pides bajo un URL dado que apunta a tu servidor y script/página concreta .. este (el servidor HTTP+lenguaje del lado del servidor si corresponde) la procesa y la entrega lo más rápido posible al "cliente" .. El "cliente" (y tu lenguaje del lado del servidor como PHP) ya en ese momento pierte todo control sobre lo que procesó y queda a la "espera" de otra nueva "petición".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.