Foros del Web » Programando para Internet » PHP »

Conocer usuarios en linea

Estas en el tema de Conocer usuarios en linea en el foro de PHP en Foros del Web. Hola a todos, Me gustaría saber cuántos usuarios diferentes hay en un momento dado en mi web. Había pensado usar ajax, y que cuando un ...
  #1 (permalink)  
Antiguo 11/09/2007, 11:35
 
Fecha de Ingreso: marzo-2007
Mensajes: 78
Antigüedad: 17 años, 1 mes
Puntos: 0
Conocer usuarios en linea

Hola a todos,

Me gustaría saber cuántos usuarios diferentes hay en un momento dado en mi web. Había pensado usar ajax, y que cuando un usuario acceda, cada cierto tiempo refresque un registro en una tabla. Luego, para indicar el número de usuarios, primero elimino los registros con una time inferior a un cierto umbral, y me quedo con el resto... pero quería saber si alguien sabe alguna forma mejor para hacerlo ¿?

Muchas gracias de ante mano.
  #2 (permalink)  
Antiguo 11/09/2007, 13:11
 
Fecha de Ingreso: mayo-2005
Mensajes: 74
Antigüedad: 18 años, 11 meses
Puntos: 2
Re: Conocer usuarios en linea

Con ajax? yo lo tengo desarrollado con php, te pongo el código y te cuento:

function usuarios_activos()
{
//asignamos un nombre memotecnico a la variable
$ip = $_SERVER['REMOTE_ADDR'];
//definimos el momento actual
$ahora = time();

//conectamos a la base de datos
//Usad vuestros propios parametros!!
$conn = Conectarse();
//mysql_select_db("apestandoarockan",$conn);

//actualizamos la tabla
//borrando los registros de las ip inactivas (24 minutos)
$limite = $ahora-24*60;
$ssql = "delete from control_ip where fecha < ".$limite;
mysql_query($ssql);

//miramos si el ip del visitante existe en nuestra tabla
$ssql = "select ip, fecha from control_ip where ip = '$ip'";
$result = mysql_query($ssql);

//si existe actualizamos el campo fecha
if (mysql_num_rows($result) != 0) $ssql = "update control_ip set fecha = ".$ahora." where ip = '$ip'";
//si no existe insertamos el registro correspondiente a la nueva sesion
else $ssql = "insert into control_ip (ip, fecha) values ('$ip', $ahora)";

//ejecutamos la sentencia sql
mysql_query($ssql);

//calculamos el numero de sesiones
$ssql = "select count(*) as cuantos from control_ip";
$result = mysql_query($ssql);
$cuantos = mysql_fetch_array($result);
$usuarios = $cuantos['cuantos'];

//liberamos memoria
mysql_free_result($result);

//devolvemos el resultado
return $usuarios;
} // fin de usuarios_activos
  #3 (permalink)  
Antiguo 11/09/2007, 13:27
 
Fecha de Ingreso: marzo-2007
Mensajes: 78
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Conocer usuarios en linea

Muchas gracias txels. Había pensado en mezclar ajax con php porque si un usuario está conectado pero no actualiza la página, al cabo de un tiempo dejará de ser contado... puede que tenga la página abierta y mire de vez en cuando algo (noticias, etc, ....) pero no la recargue ni navegue por la web... en este caso, dicho usuario dejará de ser contado.

Lo que me planteo ahora es si merece la pena contemplar esos casos... igual será mejor hacerlo como comentas, quera la idea que tenía en un principio...
  #4 (permalink)  
Antiguo 11/09/2007, 13:30
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Conocer usuarios en linea

ajax no actualiza la pagina ojo eso se logra con javascript puro ;)
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #5 (permalink)  
Antiguo 11/09/2007, 15:55
 
Fecha de Ingreso: marzo-2007
Mensajes: 78
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Conocer usuarios en linea

Si claro, pero actualizar la página entera sólo para refrescar la "sesión" de un usuario sería una locura... la idea de usar ajax era lanzar sólo un método php que actualice su registro en la base de datos, así no tiene que recargarse la página.
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 20:41.