<?
#================================================= ===
#= Script: Live Traffic 5
#= Version: 5.0
#= Author: Gregg Kenneth Jewell
#= Email: greggjewell@yahoo.com
#= Website: www.arecaweb.com/php/livetraffic/
#= Copyright: 2003-2004
#================================================= ===

################################################## ###
#= SETTINGS =#
################################################## ###


function CountUsers () {

$Expire = "30";

$AutoMonitor = "1";
$AutoCorrect = "";
$AutoRefresh = "";
$RefreshRate = "";

$file = "online.log";



$MaxFileSize = "10";

$UsersLogged = 0;

if (!file_exists($file)) {
echo "file non trovato";
return 0;
}

$Interval = mktime() - $Expire;
$MaxFileSize = $MaxFileSize * 1000;

$NewUser = mktime()."|".$_SERVER['REMOTE_ADDR']."[x]";

if (filesize($file) > $MaxFileSize and $AutoMonitor == "1") {
#================================================= ================
#= OVERWRITE ALL OLD USER INFO
#================================================= ================
$LoggedUsers = ReadLog($file);
for ($x=0;$x<count($LoggedUsers);$x++) {
if ($Interval <= trim(substr($LoggedUsers[$x],0,10)))
$SavedUsers .= $LoggedUsers[$x]."\r\n";
}
$SavedUsers .= $NewUser;

$handle = @fopen($file,"w");
@flock($handle,LOCK_EX);
@fwrite($handle,$SavedUsers."\r\n");
@flock($handle,LOCK_UN);
@fclose($handle);
}
else {
#================================================= ================
#= APPEND USER INFO TO LOG FILE
#================================================= ================
$handle = @fopen($file,"a");
@flock($handle,LOCK_EX);
@fwrite($handle,$NewUser."\r\n");
@flock($handle,LOCK_UN);
@fclose($handle);
}

$LoggedUsers = ReadLog($file);

#================================================= ================
#= COUNTS CURRENT ONLINE USERS
#================================================= ================
for ($x=0;$x<count($LoggedUsers);$x++) {
$UserInfo = explode("|",$LoggedUsers[$x]);
// CHECKS FILE DATA FOR REPEAT USERS
if (isset($CheckUsers)) {
if ($Interval <= trim($UserInfo[0]) and !stristr($CheckUsers,trim($UserInfo[1]))) {
$CheckUsers .= $UserInfo[1];
$UsersLogged++;
}
} else {
$CheckUsers .= $_SERVER['REMOTE_ADDR'];
$UsersLogged++;
}
}

return $UsersLogged;
}

#================================================= ================
#= READ LOG FILE FUNCTION
#================================================= ================
function ReadLog($file) {

$handle = @fopen($file,"r");
@flock($handle,LOCK_SH);
$LoggedUsers = @fread($handle,filesize($file));
@flock($handle,LOCK_UN);
@fclose($handle);
$LoggedUsers = trim($LoggedUsers);
$LoggedUsers = substr($LoggedUsers,0,-3);
$LoggedUsers = explode("[x]",$LoggedUsers);
return $LoggedUsers;

}
?>