Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/05/2005, 02:28
DjNelson
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 8 meses
Puntos: 0
Aquí te dejo otra versión:

<?php

$archivo="usuarios.txt"; //archivo donde almacenarán los usuarios activos
$inactivo=600; //tiempo en segundos en que un usuario estará inactivo
$contar=0;

$fp=fopen($archivo,"r");

$tiempo=time();
/*Cuando el tamaño del archivo es 0 casca, ponemos la @ delante de la funcion para que no muestre el error en pantalla*/
$contenido=@fread($fp,filesize($archivo));
fclose($fp);

$lineas=split("\n",$contenido);

$filas=file($archivo);

$res=NULL;
for ($a=0; $a < sizeof($filas); $a++) {
$datos=split(':',$lineas[$a]);
$descontar=$tiempo-$inactivo;
if ($datos[0] != $_SERVER['REMOTE_ADDR'] && $datos[1] > ($descontar)) {
$res.= $datos[0].":".$datos[1]."\n";
$contar++;
}
}

$res.=$_SERVER['REMOTE_ADDR'].":$tiempo\n";
$contar++; // Ya tenemos el total de usuarios activos
$fp=fopen($archivo,"w");
fwrite ($fp,$res);
fclose($fp);

//Ahora damos formato a la salida, modifica esto a tu gusto
//Ten en cuenta que la variable $contar contiene el nº de usuarios activos

if ($contar==1) echo "1 usuario online";
else echo "$contar usuarios online";
?>

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)