Ise un contador de Usuarios Online.
Consiste en un 3 archivos:
- online.php
- date.dat
- total.dat
online.php
Código PHP:
<?php
##############################################
# CODIGO ECHO POR pato12 DEL FORO:
# forosdelweb.com
# (BETA)
##############################################
############- CONFIGURACIONES -#########
$date='date.dat'; // Archivo donde se gurdara los datos
$total='total.dat'; // Archivo donde se guardara el numero de usuarios online
$carpeta='./'; // Carpeta donde se encuentran los archivos de textos
$not_us=500; // Segundos que tienen que pasar para que un usuario aparesca como inactivo
$sep_sub=':'; // Separador de ip y time
$sep_fila="\n"; // Separador de usuarios
#############- NO MODIFICAR -############
$ip=$_SERVER['REMOTE_ADDR'];
$time=time(); // Time. NO MODIFICAR
$dat=array(); // Datos. NO MODIFICAR
$ips=array(); // Ips de los usuarios. NO MODIFICAR
$user_on=0; // Usuario conectados. NO MODIFICAR
#########################################
$date=(!empty($carpeta))?$carpeta.$date:$date;
$total=(!empty($carpeta))?$carpeta.$total:$total;
$user_on++;
if(file_exists($date))
$fp=fopen($date,"r+");
else
$fp=fopen($date,"a+");
$cont_a=@fread($fp,filesize($date));
fclose($fp);
$sep=split($sep_fila,$cont_a);
for ($a=0; $a < count($sep); $a++) {
$sub=split($sep_sub,$sep[$a]);
if ($sub[1] > ($time-$not_us) && !empty($sub[0])) {
$dat[]= $sub[0].$sep_sub.$sub[1];
if($ip!=$sub[0])
$user_on++;
$ips[]=$sub[0];
}
}
if(!in_array($ip,$ips))
$dat[]=$ip.$sep_sub.$time.$sep_fila;
$fp=fopen($date,"w");
fwrite ($fp,implode($sep_fila,$dat));
fclose($fp);
if(file_exists($total))
$fp=fopen($total,"w");
else
$fp=@fopen($total,"a+");
fwrite ($fp,$user_on);
fclose($fp);
###########################################
# FINAL MENTE, LA VARIABLE QUE TIENE LOS
# USUARIOS ONLINE ES:
# $user_on;
# TAMBIEN EN EL ARCHIVO total.dat (COMO DEFAUT) SE GUARDAN~
# LOS USUARIOS ONLINE
###########################################
echo $user_on;
?>
No lo puede probar con muchos usuarios, solo con 3.
Gracias
Salu2