Autor
|
Tema: [SOLUCIONADO] Como detecto cuando el usuario abandone la pagina ?? (Leído 5,442 veces)
|
SirLanceCC
|
vaya, si el tiempo (10+5) se queda por abajo del tiempo actual entonces se supone que esta aparte debemos detectar si esta aun o no existente su session Tu quieres hacer un método que averigue si aun está en la página. Ya te comentamos que eso no se puede por las desventajas que ya describimos. Esto no detecta nada, sólo supone que ya no está, que pasaron 5 minutos y ya se fue. Por ejemplo en el foro siempre estoy loggueado. La cookie de mi sesión caducará como en mil años. Sin embargo si no accedo a la página después de un rato aparezco como desconectado.
|
|
|
En línea
|
|
|
|
Diabliyo
Desconectado
Mensajes: 1.441
shell# _
|
vaya, si el tiempo (10+5) se queda por abajo del tiempo actual entonces se supone que esta aparte debemos detectar si esta aun o no existente su session Tu quieres hacer un método que averigue si aun está en la página. Ya te comentamos que eso no se puede por las desventajas que ya describimos. Esto no detecta nada, sólo supone que ya no está, que pasaron 5 minutos y ya se fue. Por ejemplo en el foro siempre estoy loggueado. La cookie de mi sesión caducará como en mil años. Sin embargo si no accedo a la página después de un rato aparezco como desconectado. Ok si ya veo, solo que me estuve empenando en hacerlo de otra forma... pero ya veo que es mejor hacerlo directamente con un temporizados FIJO... Por otra parte... si el usuario cierra la ventana ya no podre comprobar su hora actual con la hora limite maximo, entonces tendria que comprobar todos los usuarios que esten en la tabla LOG y tengan el campo fehc_logout vacio...
|
|
« Última modificación: 16 Julio 2008, 22:58 pm por Diabliyo »
|
En línea
|
|
|
|
Diabliyo
Desconectado
Mensajes: 1.441
shell# _
|
Listo... Ya pude hacer que la sesion se cierre en un tiempo determinado, pero tambien tomando en cuenta que el usuario NO este activo en la pagina, en el caso que este activo pues le actualiza el tiempo y le agrega tiempo extra. Fue simple: <?php function deamon_logd() { $ip= $_SERVER['REMOTE_ADDR']; $nav= get_browser(); //Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14 $log_cons= consultar_con( "LOG", "SESION='". session_id(). "'" ); if( mysql_num_rows($log_cons)==0 ) //no existe la SESION, esta entrando nuevo usuario { //recolectamos informacion while (list($key, $val)=each($nav)) { if( !strcmp($key, "parent" ) ) $navegador= $val; else if( !strcmp($key, "platform" ) ) $so= $val; } $trama= array( "nick"=>"'Visitante'", "ip"=>"'". $ip. "'", "so"=>"'". $so. "'", "navegador"=>"'". $navegador. "'", "sesion"=>"'". session_id(). "'", "fecha_login"=>"'". time(). "'" ); insertar_bdd( "LOG", $trama ); } else //la SESION ya existe { if( usuario_legitimo() ) { $trama= array( "sesion"=>"'". session_id(). "'", "nick"=>"'". $_SESSION["log_usr"]. "'" ); actualizar_bdd( "LOG", $trama ); } } unset($log_cons); //establece los cierres de sesion temporizador_de_sesiones(); } function temporizador_de_sesiones() { $log_cons= consultar_con( "LOG", "FECHA_LOGOUT=''" ); //consultamos sesiones abiertas $flag=0; //bandera para saber si debemos cerrar la sesion o dejarla abierta while( $buf= mysql_fetch_array($log_cons) ) { //si la SESION es igual, aun esta activo en la web if( !strcmp( session_id(), $buf["SESION"] ) ) $flag=1; //bandera activada //si la no esta activada, entonces posiblemente no este conectado if( $flag==0 ) { if( ($buf["FECHA_LOGIN"]+(10*60)) < time() ) //si el tiempo se vencio se cierra la sesion { $trama= array( "ID"=>"'". $buf["ID"]. "'", "FECHA_LOGOUT"=>"'". time(). "'" ); actualizar_bdd( "LOG", $trama ); } } else //entonces esta conectado, se actualiza el tiempo de sesion { $trama= array( "ID"=>"'". $buf["ID"]. "'", "FECHA_LOGIN"=>"'". time(). "'" ); actualizar_bdd( "LOG", $trama ); } unset($trama); $flag=0; //desactivamos bandera } unset($buf); unset($log_cons); } ?>
|
|
« Última modificación: 17 Julio 2008, 00:34 am por Diabliyo »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿como cerrar una pagina de internet para que el usuario vuelva a abrirla?
Redes
|
thedevilini
|
5
|
4,028
|
25 Noviembre 2011, 08:46 am
por adastra
|
|
|
Extorsionan al usuario de @N para que abandone su cuenta en Twitter valorada ...
Noticias
|
wolfbcn
|
0
|
1,547
|
30 Enero 2014, 01:57 am
por wolfbcn
|
|
|
Puede que Netflix no abandone la lucha por la neutralidad de la red después ...
Noticias
|
wolfbcn
|
0
|
10,903
|
16 Junio 2017, 15:05 pm
por wolfbcn
|
|
|
Como detecto la inactividad en batch?
Scripting
|
AweboGamer
|
2
|
2,330
|
21 Julio 2019, 16:15 pm
por AweboGamer
|
|
|
[Pregunta]: ¿Como detecto cuando un usuario cierra el cliente/navegador?
Desarrollo Web
|
Leguim
|
1
|
2,090
|
30 Octubre 2019, 12:05 pm
por @XSStringManolo
|
|