Foros del Web » Programando para Internet » PHP »

Usuarios en línea PHP

Estas en el tema de Usuarios en línea PHP en el foro de PHP en Foros del Web. Un saludo antes que nada, estoy realizando un contador de usuarios en línea, mi idea es guardar en la base de datos la información del ...
  #1 (permalink)  
Antiguo 27/01/2012, 14:29
 
Fecha de Ingreso: julio-2006
Mensajes: 9
Antigüedad: 17 años, 8 meses
Puntos: 0
Usuarios en línea PHP

Un saludo antes que nada, estoy realizando un contador de usuarios en línea, mi idea es guardar en la base de datos la información del usuario y comparar despues si la ip del usuario ya ha sido registrada, comparar el nombre de la pc por si es una red local y si el tiempo del ultimo click fue 10 minutos o menos por ejemplo. No se si alguien haya realizado algo similar. pongo mi ejemplo:

<?php
//usuario que visita la pagina, esta función me devuelve el id del usuario si es que se loggeo si no devuelve blanco, y dado que ya puede existir un registro con su nombre de usuario pero despues al llamar otra vez el script cerro sesion y la variabla esta en blanco conservo el contenido actual del campo idcli.
$Us_Vis=(Id_Usuario()!="")?"'".Id_Usuario()."'":"i dcli";

//obtengo el nombre de su pc de acuerdo a la ip dado que pudiera existir la posibilidad que visiten varias personas al mismo tiempo desde una lan
$Pc_Vis=gethostbyaddr($_SERVER['REMOTE_ADDR']);

//fecha de actualizacion
$fecha=date("Y-m-d H:i:s",time());

//consulta para actualizar si es que ya existe la ip, nombre de pc, y no han transcurrido mas de 10 minutos desde su ultima visita
$strSql="UPDATE visitas SET idcli=$Us_Vis,fechasalida='$fecha'
WHERE ip='".$_SERVER['REMOTE_ADDR']."'and pc='".$Pc_Vis."' and (TIMESTAMPDIFF(MINUTE , fechasalida,'$fecha' ))<=10;";

if (mysql_query($strSql))
{

//si no afecto una fila entonces agrega un nuevo registro
if (mysql_affected_rows()<>1)
{

//verifica si el usuario es idcli que es el nombre de mi campo para usuario usado en update, si es idcli lo cambio por blanco
$Us_Vis=$Us_Vis=="idcli"?"''":$Us_Vis;

//consulta para agregar el registro
$strSql2="INSERT INTO visitas(idcli,ip,pc,navegador,fechasalida)
VALUES($Us_Vis,'" . $_SERVER['REMOTE_ADDR'] . "','" .$Pc_Vis . "','" . $_SERVER['HTTP_USER_AGENT'] . "','$fecha')";
mysql_query($strSql2);
}

}
?>

No supe como agregarle espacios por eso aparece desordenado el código :(. Espero alguien me de una ide de como mejorar mi código. De antemano gracias.

Etiquetas: mysql, registro, sql, usuarios
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 04:39.