PHP:¿Cómo sé los usuarios activos que hay en mi web?

De Foros del Web

Tu servidor debe admitir funciones de lectura y escritura en archivos de texto. Empezamos creando un archivo usuarios.txt EN BLANCO. A continuación creamos otro archivo activos.php cuyo contenido sea:

Código 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(); 
$contenido=fread($fp,filesize($archivo)); 
fclose($fp); 
$lineas=split("\n",$contenido); 
$filas=file($archivo); 
for ($a=0; $a < sizeof($filas); $a++) { 
$datos=split(':',$lineas[$a]); 
$descontar=$tiempo-$inactivo; 
if ($datos[0] != $REMOTE_ADDR && $datos[1] > ($descontar)) { 
$res.= $datos[0].":".$datos[1]."\n"; 
$contar++; 
}} 
$res.="$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){$contar="1 usuario activo";}else{$contar="$contar usuarios activos";} 
echo $contar; //Lo mostramos por pantalla 
?> 

Finalmente subes el activos.php y el usuarios.txt a tu server. Y luego en el lugar de tu página donde quieras ver los usuarios activos pones: Código PHP:

<? include "activos.php"; ?> 

Como puedes observar, puedes cambiar la ruta del archivo usuarios.txt (p. ej.: "../../usuarios.txt"); en este caso he supuesto que la aplicación y el archivo auxiliar están en la misma carpeta.


--ferny 22 Ene 2003

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales