Hola, segun lo que veo en tu script ya tienes la solucion en tu archivo users_online.nel por que si no me equivoco y si es asi corrigeme, pero en ese archivo debes de tener la informacion de esta manera:
<Direccion IP>:<Tiempo de Session>
creo que tal ves puedes modificar tu script si es un usuario registrado y guarda sesion en su maquina (cookie) que registre en ingreso en un archivo users_reg.nel pero con el siguiente formato <usuario>:<Tiempo de Session> y ya tendrias si el usuario esta registrado y el total si no esta registrado.
Bueno algo asi no esta bien elaborado pero tambien fue de uno parecido que me encontre que lo modifique espero que te ayude:
Código PHP:
function ValUsu($nickN, $VcID){
$estado = false;
$archivo="usuarios.dat"; //archivo donde almacenarán los usuarios activos
$inactivo="480";//cargamos variable de tiempo
$tiempo=time();
$filas=file($archivo);
for ($a=0; $a < sizeof($filas); $a++) {
$datos=split(':',$filas[$a]);
if ($datos[0] != $nickN && $datos[1] != $VcID && ($tiempo - $datos[2]) < $inactivo) {
$res .= $datos[0].":".$datos[1].":".$tiempo."\n";
}
if ($datos[0] == $nickN && $datos[1] == $VcID && ($tiempo - $datos[2]) < $inactivo) {
$estado = true;
}
}
if ($estado == true){
$res .= $nickN . ":" . $VcID . ":" . $tiempo;
}
$fp=fopen($archivo,"w") or die("el fichero no se ha podido abrir");
fwrite ($fp,$res);
fclose($fp);
return $estado;
}
bueno y para sabe que usuario en linea solo hay que abrir el archivo y mostrar el contenido.
Saludos
Mauricio