Foros del Web » Programando para Internet » PHP »

Sistema de usuarios online

Estas en el tema de Sistema de usuarios online en el foro de PHP en Foros del Web. Hola amigos del foro, quiero consultarles lo siguiente: como puedo hacer para crear un sistema de usuarios online en php? Para que al lado de ...
  #1 (permalink)  
Antiguo 14/02/2010, 12:49
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 2 meses
Puntos: 6
Sistema de usuarios online

Hola amigos del foro, quiero consultarles lo siguiente:
como puedo hacer para crear un sistema de usuarios online en php?
Para que al lado de cada usuario, figure por ejemplo un circulito verde si esta online o gris si esta off?(el color es lo de menos)
Lo que no logro saber bien es que condicion poner y como relacionarlo con la base de datos (ya que supongo que habra que ingresar algo en la base, que indique si un usuario esta logueado o no)
Si alguien me puede ayudar con el tema se los agradeceria un monton.
Desde ya saludos y gracias
Ariel
  #2 (permalink)  
Antiguo 14/02/2010, 13:23
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Hola apustilnik

Muevo tu tema al foro de PHP desde Web general.

Saludos,
  #3 (permalink)  
Antiguo 14/02/2010, 14:00
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: Sistema de usuarios online

Pues puedes poner un campo en la tabla usuarios llamado log (por ejemplo) de tipo Booleano, si es 0 está offline, si es 1 está online:

Código PHP:
Ver original
  1. if($log==TRUE) { /* online*/ } else { /*offline*/ }
Cuando el usuario ingrese, le haces un update al campo poniéndolo en true, luego deberás poner un botón logout que reestablezca a false. En mi página tengo algo parecido, aunque también puedes poner estados como ausente o no disponible.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #4 (permalink)  
Antiguo 16/02/2010, 19:48
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 2 meses
Puntos: 6
Respuesta: Sistema de usuarios online

Como estas, antes que nada muchisimas gracias por la respuesta y la explicación!
Bueno te cuento que logre diseñar mi propio sistema de usuarios online, en el cual, cuando un usuario se loguea en el sitio, ingresa su username en una base de datos, y al hacer logout o cerrar el explorer una vez que la sesion finaliza borra ese usuario de la base y de este modo mediante un loop for, indica, si el usuario se encuentra online u offline.
Si el usuario está en el campo de la base figura online, y al eliminarse, pasa figurar como offline.
Te cuento que me costo bastante lograrlo, pero despues de mucho pensar, y gastar un poco mi cerebro casi sin uso pude hacerlo!
Gracias nuevamente, y por cualquier cosa estoy para servirte.
Saludos, Ariel
  #5 (permalink)  
Antiguo 17/02/2010, 19:34
 
Fecha de Ingreso: enero-2010
Mensajes: 400
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: Sistema de usuarios online

La verdad que esta muy buena, hace mucho que quiero saber como hacer un sistema de registro y logueo, saludos !
  #6 (permalink)  
Antiguo 17/02/2010, 20:00
 
Fecha de Ingreso: julio-2009
Mensajes: 311
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Sistema de usuarios online

a mi tambiien me habia seducido al idea de lograr que los usuarios interactuaran entre si
Yo ya tengo un sistema de logeo y sin problema se como poder saber quiunees estan online pero me habian dicho que con php np era posible esa comunicacion.
Si tenes algun codigo que quieras compartir conmigo te lo agradecere muchismo
  #7 (permalink)  
Antiguo 17/02/2010, 21:03
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 2 meses
Puntos: 6
Respuesta: Sistema de usuarios online

el unico problema con todo esto, es que si el usuario no hace click en logout y simplemente cierra el explorer nunca se borra de la base,por lo que por mas que no este dentro de la página sigue figurando online
como se podría solucionar eso?
  #8 (permalink)  
Antiguo 17/02/2010, 21:58
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 2 meses
Puntos: 6
Respuesta: Sistema de usuarios online

ya logre resolver el problema del logout.
lo que hice es que cuando se cierra la session elimine de la baste el nombre de usuario, que a su vez está guardado en una cookie al momento en que el usuario hace un login.
entonces: cuando el usuario hace un login, o bien se registra un nuevo usuario, se crea una cookie con su nombre de usuario (en mi caso le doy una duración de 1 año) y tambien se ingresa el nombre de usuario en una base de datos, que es la que me va a indicar si el usuario se encuentra online o no, por ejemplo haciendo la siguiente consulta:
$consulta= "select * from online where username= '".$_SESSION['username']."'";
$result= mysql_query($consulta);
$num= mysql_num_rows($result);

if ($num)
echo "online";
else
echo "offline";

con esto logramos hacer dicha comparación.
ahora, para eliminar el usuario de la base (suponiendo que el usuario sale de la página sin hacer logout) podríamos hacer lo siguiente:

if (!$_SESSION['username']) /*$_SESSION['username'] es el nombre que le di a la variable de sesion de usuario al crearla*/
{
$consulta1= "delete from online where username= '".$_COOKIE['username']."'";
$result1= mysql_query($consulta1);
}
con esto logramos borrar d ela base online el usuario, en caso de que la session finalice
espero haberles sido de ayuda y no haberlos confundido con el codigo.
saludos,
ariel
  #9 (permalink)  
Antiguo 18/02/2010, 07:51
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 2 meses
Puntos: 6
Respuesta: Sistema de usuarios online

aunque sigue estando el mismo inconveniente, que es que al usuario cerrar el navegador sin hacer un logout sigue figurando online, pues no se borra de la base.
pero se me acaba de ocurrir, no si estará bien, hacer lo siguiente:

if (session_cache_expires()) /* este if es lo que se me ocurrio como condicion, no se si estará bien*/
{
$consulta= "delete from online where username= '".$_SESSION['username']."'";
$result= mysql_query($consulta);
}
  #10 (permalink)  
Antiguo 18/02/2010, 17:01
Avatar de ONahuelO  
Fecha de Ingreso: junio-2009
Ubicación: Gualeguaychú, Argentina
Mensajes: 144
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Sistema de usuarios online

Mira yo lo haria con una db y con time()


Ejemplo, una db con 3 campos

usuario tiempo estado


Al logearse el usuario, haces una consulta

Insertar en db nombre de usaurio , time(), 1


Entonces cuando el usuario se loguea va a quedar guardado.

Ahora falta la parte de desconectarse, para eso al inicio de tu web haces que esta saque el tiempo que paso y si el usuario pasa x segundos se desconectara automaticamente



$consulta "Seleccionar Tiempo ,UsuarioWhere Estado >= 1"
for ( $u = 0 ; $u <= ($cantidad de registros en db); $u++){


if( (time() - $consulta [0]) > Xsegundos ){ $nconsulta =(delete into Tabla Usuario)}
}


Algo mas o menos asi lo haria yo, aclaro que el codigo que te di no es sintacticamente correcto, es solo a modo de explicacion de como seria, si no entendieste te paso desp un codigo completo, pero ahora no tengo tiempo :)
  #11 (permalink)  
Antiguo 20/02/2010, 12:13
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 2 meses
Puntos: 6
Respuesta: Sistema de usuarios online

Hola, antes que nada muchisimas gracias por la explicación, voy a ver que onda.
Y con respecto al codigo, cuando tengas un rato y me lo podes pasar, buenisimo. asi lo chequeo.
Desde ya mil gracias.
Saludos
Ariel

Etiquetas: usuarios, sitemap
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:06.