$fcnt = "v_count.txt"; //file conteggio visite $fvip = "v_ip.txt"; // file elenco IP x conteggio visite $fuip = "u_ip.txt"; // file elenco IP x conteggio utentionline $_DELTA=3600; // slot di esame 60x60=3600 sec=1h // CONTATORE VISITE $usrIP = $_SERVER['REMOTE_ADDR']; // IP-utente $timestop=time(); // timestamp $f = fopen($fcnt, "r"); $count = fread($f, filesize($fcnt)); //legge contatore visite $count++; //incrementa valore fclose($f); $lines = file($fvip); //legge file elenco IP foreach ($lines as $line_num => $line){ //cerca timestamp $s = strpos($line,'TIMESTAMP= "')+12; $e = strpos($line,'"',$s); $rd = substr($line,$s,($e-$s)); //legge data break;} if($timestop>$rd+$_DELTA) { //nuova data $f = fopen($fvip, "w"); fwrite($f, "TIMESTAMP= \"$timestop\""); //scrive data corrente fwrite($f, "\n*$usrIP*"); //scrive ip-utente fclose($f); $f = fopen($fcnt, "w"); fwrite($f, $count); //scrive numero visite fclose($f);} else{ //stessa data $iplist =file_get_contents ($fvip); //legge elenco IP if (!strpos($iplist,"*$usrIP*")) // cerca ip utente x nuovo ip {$f = fopen($fcnt, "w"); fwrite($f, $count); //scrive numero visite fclose($f); $f = fopen($fvip, "a"); //appende IP file elenco ip fwrite($f,"\n*$usrIP*"); fclose($f);} } // UTENTI ON LINE - $ucounter = 1; //contatore utenti $lines = file($fuip); //apre file in array $new = ""; //stringa elenco IP/timestamp foreach ($lines as $line_num => $line){ //per ogni riga del file $fp = strpos($line,'****'); //cerca '****' $cip = substr($line,0,$fp); //estrae IP $sp = strpos($line,'++++'); //cerca '++++' $rd = substr($line,$fp+4,$sp-($fp+4)); //estrae timestamp if(($timestop<$rd+ $_DELTA) && ($cip!=$usrIP)) { //se diff<3600sec e IP<>ip-utente 60X60=3600 $ucounter++; //incrementa conteggio $new = $new . $line; } //aggiunge record valido } $new =$new . $usrIP. "****". $timestop . "++++\n"; //costruisce riga utente corrente $f = fopen($fuip, "w"); fwrite($f,"$new "); //riscrive records ancora attivi fclose($f); echo "document.write('
Utenti online : $ucounter | Visite : $count |