Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/01/2012, 14:29
thealfred
 
Fecha de Ingreso: julio-2006
Mensajes: 9
Antigüedad: 17 años, 9 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.