Autor
|
Tema: Como hacer algo cuando se desconecte?? (Leído 7,401 veces)
|
Karman
|
Parte del ajax esta en el Servidor, no Importa si lo cierres, te cae una casa en el pc, el contador que incluso podria estar en php llamado por ajax, ese php esta en el servidor, lo cual salva de cualquier problema por parte del cliente. (browser).
No, ni parte ni nada, lo que está en el servidor es PHP, pero fuera de eso, puedes utilizar como te dijeron bases de datos son sesiones, guardar IP en sesion (en caso de desconexión), identificador de browser (en caso de distinto browser), o tiempo límite de respuesta en caso que no coincida ninguno de los anteriores... S2
|
|
|
En línea
|
|
|
|
Spider-Net
Desconectado
Mensajes: 1.165
Un gran poder conlleva una gran responsabilidad
|
Mediante ajax haz que el usuario realice peticiones constantemente (cada 10/30/60 segundos), en el momento en el que en un periodo del tiempo, fijado anteriormente, no se reciba ninguna petición significará que el usuario se habrá desconectado (cerrado el navegador, apagado el ordenador, sin conexión a internet, etc, etc).
Esta es la respuesta más acertada creo yo, pero tengo una duda. Como compruebas que no has recibido ninguna petición? Quiero decir yo entro en la página y se registra mi sesión y ahora me voy, por lo tanto, qué proceso es el que analizaría cada 20 o 30 segundos si sigo o no online? si ya no estoy ejecutando ninguna página? No sé si me explico, si alguien me entiende que por favor conteste, sino diganmelo y me explico un poco mejor xD
|
|
|
En línea
|
|
|
|
naderST
|
Insisto en bases de datos aca tengo un script php para usuarios en linea y ese lo puedes adaptar para lo que quieres hacer: <?php $dbhost = "localhost"; $dbuser = "root"; $dbpass = "a"; $dbname = "test"; $contime = 60; $ip = $_SERVER['REMOTE_ADDR']; $tiempo = ($fecha+$contime); mysql_query("DELETE FROM gente_enlinea WHERE fecha < '$fecha'"); $query = mysql_query("SELECT * FROM gente_enlinea WHERE ip = '$ip'"); mysql_query("UPDATE TABLE gente_enlinea SET fecha = '$tiempo' WHERE ip = '$ip'"); }else { mysql_query("INSERT INTO gente_enlinea(fecha, ip) VALUES('$tiempo', '$ip')"); } echo $on; ?>
La tabla gente_enlinea tiene 2 campos ip y fecha nada mas
|
|
« Última modificación: 21 Marzo 2009, 16:00 pm por naderST »
|
En línea
|
|
|
|
yeikos
Desconectado
Mensajes: 1.424
|
Mediante ajax haz que el usuario realice peticiones constantemente (cada 10/30/60 segundos), en el momento en el que en un periodo del tiempo, fijado anteriormente, no se reciba ninguna petición significará que el usuario se habrá desconectado (cerrado el navegador, apagado el ordenador, sin conexión a internet, etc, etc).
Esta es la respuesta más acertada creo yo, pero tengo una duda. Como compruebas que no has recibido ninguna petición? Quiero decir yo entro en la página y se registra mi sesión y ahora me voy, por lo tanto, qué proceso es el que analizaría cada 20 o 30 segundos si sigo o no online? si ya no estoy ejecutando ninguna página? No sé si me explico, si alguien me entiende que por favor conteste, sino diganmelo y me explico un poco mejor xD Imaginen que encerramos una mariposa en una caja transparente, cerrada al vacio, la tapamos con una manta y la dejamos ahí durante 1 día... ¿Cuando sabremos si la mariposa sigue viva? Cuando destapemos la manta. Ahora la mariposa es el usuario, que siga viva significa que sigue conectado, la caja es la página Web y la acción de quitar la manta es cuando nosotros visitamos la página Web administrativa para saber quien sigue conectado. La página Web que visita el usuario es simple; cada vez que el usuario haga una petición cada X segundos se actualizará en la base de datos la fecha y hora exacta (timestamp) en la que realizó la petición. A este valor lo llamaremos Y. Ahora nosotros visitamos la página Web administrativa (destapamos la manta) y hacemos la siguiente consulta para saber aquellos usuarios que no se encuentran conectados: timestamp - valor Y del usuario > X Si la diferencia entre la fecha actual y la fecha del usuario es mayor que X deducimos que el usuario no se encuentra activo, ya que cada X segundos el usuario tubo que actualizar el valor de Y, y si no lo hizo fue por que se desconectó... ¿Por qué os he metido el cuento de la mariposa? Porque en este caso, hasta que nosotros no visitamos la página Web administrativa no somos conscientes de la realidad, al igual que hasta que no destapamos la manta no sabemos si la mariposa sigue viva... Existe otro método... que seria como quitarle la manta a la caja o quitársela en periodos de Z segundos y observarla continuamente. Para ello habría que ejecutar una aplicación en el servidor para que esté alerta todo el tiempo en busca de usuarios desconectados, en base a la consulta de arriba. Y he ahí la cuestión, ¿queremos ser nosotros quien avisa o queremos que nos avisen?
|
|
|
En línea
|
|
|
|
OzX
Desconectado
Mensajes: 406
[NuKe] Team
|
Parte del ajax esta en el Servidor, no Importa si lo cierres, te cae una casa en el pc, el contador que incluso podria estar en php llamado por ajax, ese php esta en el servidor, lo cual salva de cualquier problema por parte del cliente. (browser).
No, ni parte ni nada, lo que está en el servidor es PHP, pero fuera de eso, puedes utilizar como te dijeron bases de datos son sesiones, guardar IP en sesion (en caso de desconexión), identificador de browser (en caso de distinto browser), o tiempo límite de respuesta en caso que no coincida ninguno de los anteriores... S2 a? Insisto en lo de ajax, ahorras mucho mas codigo. y tambien optimizacion ¡ lo que es fundamental, te puedes crear un sistema completa en php y mysql pero si lo puedes hacer en ajax, mucho mejor ¡. insito en la nocion de yeikos Saludos¡
|
|
|
En línea
|
Undersecurity.net
|
|
|
Spider-Net
Desconectado
Mensajes: 1.165
Un gran poder conlleva una gran responsabilidad
|
Gracias yeikos. Buena explicación mediante el principio de incertidumbre de Heisenberg, eso sí, cambiando el gato por una mariposa xD
Ya entendí como hacerlo, el momento de comprobar quien está online será cuando yo me conecte al panel de adminstración. Gracias por la explicación.
Saludos!
|
|
|
En línea
|
|
|
|
yeikos
Desconectado
Mensajes: 1.424
|
jaja, la verdad es que cambié el gato por la mariposa porque me parecía muy cruel xd
saludos!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Cómo hacer algo como..................
Dudas Generales
|
prometheus48
|
0
|
1,885
|
2 Enero 2012, 22:32 pm
por prometheus48
|
|
|
Como hacer algo como esto......--->>
« 1 2 »
Desarrollo Web
|
prometheus48
|
11
|
6,632
|
4 Enero 2012, 19:12 pm
por prometheus48
|
|
|
Cuándo dije qué: cómo buscar algo en Twitter y Facebook sin desesperarse
Noticias
|
wolfbcn
|
0
|
1,292
|
2 Febrero 2015, 13:01 pm
por wolfbcn
|
|
|
Hacer que alguien se descrague algo cuando se conecta a un red Wi-Fi
Análisis y Diseño de Malware
|
JackHackBoot
|
1
|
3,170
|
21 Enero 2016, 04:27 am
por engel lex
|
|
|
¿Qué sucede cuando contestas un mail procedente de una dirección no.spam@algo.algo?
Dudas Generales
|
fzp
|
9
|
11,495
|
19 Agosto 2021, 10:25 am
por Randomize
|
|