<?php
if(isset($_SERVER['HTTP_REFERER'])){ $referer=htmlspecialchars(trim($_SERVER['HTTP_REFERER'])); }else{ $referer=''; }
if(isset($_SERVER['HTTP_USER_AGENT'])){ $arbuz=htmlspecialchars(trim($_SERVER['HTTP_USER_AGENT'])); }else{ $arbuz=''; }
if(isset($_SERVER['REMOTE_ADDR'])){ $ip=htmlspecialchars(trim($_SERVER['REMOTE_ADDR'])); }else{ $ip=''; }
$seg_den = date("d");
$dat2 = date("d.m.Y H:i:s");
$stats_site = file($koren_dir.'/data/statstik/stats_site.dat');
$stats_site=explode("<||>",$stats_site[0]);
if($seg_den == $stats_site[0])
{
$arbuz_dat = file($koren_dir.'/data/statstik/arbuz.dat');
$znach = "0";
$i='0';
$var=count($arbuz_dat);
while($i < $var)
{
$arbuz_dat[$i]=trim($arbuz_dat[$i]);
if($arbuz.'<>'.$ip == $arbuz_dat[$i]){ $znach = "1"; }
++$i;
}
if($znach=='0')//если в базе совпадений нет, то дописываем новый арбуз и реферер//+ хост
{
//дописываем арбуз
$file_arbuz = fopen($koren_dir.'/data/statstik/arbuz.dat', "a+");
flock ($file_arbuz,LOCK_EX);
fputs($file_arbuz,$arbuz.'<>'.$ip."\r\n");
flock ($file_arbuz,LOCK_UN);
fclose($file_arbuz);
@chmod("$koren_dir/data/statstik/arbuz.dat", 0666);
if($referer != '')//дописываем referer если он определился
{
if($referer != ' ')
{
$arbuz_arr=explode("/",$arbuz);
$referer_arr = explode("/",$referer);
if($referer_arr[2] != $_SERVER['HTTP_HOST'])
{
$str=''.$referer.'<||>'.$arbuz_arr[0].'<||>'.$dat2.'<||>';
$file_referer = fopen($koren_dir.'/data/statstik/referer_dat.dat', "a+");
flock ($file_referer,LOCK_EX);
fputs($file_referer,$str."\n");
flock ($file_referer,LOCK_UN);
fclose($file_referer);
@chmod("$koren_dir/data/statstik/referer_dat.dat", 0666);
}
}
}
++$stats_site[1];//увеличил на 1 хост
}
++$stats_site[2];//увеличил на 1 хит
//записываем счётчик
$file_stats_site = fopen($koren_dir.'/data/statstik/stats_site.dat', "w+");
flock ($file_stats_site,LOCK_EX);
fputs($file_stats_site,$stats_site[0].'<||>'.$stats_site[1].'<||>'.$stats_site[2].'<||>'.$stats_site[3].'<||>'.$stats_site[4].'<||>');
flock ($file_stats_site,LOCK_UN);
fclose($file_stats_site);
@chmod("$koren_dir/data/statstik/stats_site.dat", 0666);
}else//если наступил новый день
{
//записываем счётчик
$file_stats_site = fopen($koren_dir.'/data/statstik/stats_site.dat', "w+");
flock ($file_stats_site,LOCK_EX);
fputs($file_stats_site,$seg_den.'<||>1<||>1<||>'.$stats_site[1].'<||>'.$stats_site[2].'<||>');
flock ($file_stats_site,LOCK_UN);
fclose($file_stats_site);
@chmod("$koren_dir/data/statstik/stats_site.dat", 0666);
//дописываем арбуз
$file_arbuz = fopen($koren_dir.'/data/statstik/arbuz.dat', "w+");
flock ($file_arbuz,LOCK_EX);
fputs($file_arbuz,$arbuz.'<>'.$ip."\n");
flock ($file_arbuz,LOCK_UN);
fclose($file_arbuz);
@chmod("$koren_dir/data/statstik/arbuz.dat", 0666);
if($referer != '')//дописываем referer если он определился
{
if($referer != ' ')
{
$arbuz_arr=explode("/",$arbuz);
$referer_arr = explode("/",$referer);
if($referer_arr[2] != $_SERVER['HTTP_HOST'])
{
$str=''.$referer.'<||>'.$arbuz_arr[0].'<||>'.$dat2.'<||>';
$file_referer = fopen($koren_dir.'/data/statstik/referer_dat.dat', "a+");
flock ($file_referer,LOCK_EX);
fputs($file_referer,$str."\n");
flock ($file_referer,LOCK_UN);
fclose($file_referer);
@chmod("$koren_dir/data/statstik/referer_dat.dat", 0666);
}
}
}
}
$stats_site = file($koren_dir.'/data/statstik/stats_site.dat');
$stats_site = explode("<||>",$stats_site[0]);
$host=$stats_site[1];
$hit=$stats_site[2];
$v_host=$stats_site[3];
$v_hit=$stats_site[4];
include($koren_dir.'/sistem/online.dat');
///////////////////Код для автоудаления старых записей рефералов
$str = file($koren_dir.'/data/statstik/referer_dat.dat');
$nom=count($str);
if($nom >= "100")//если Записей больше 100, то чистим:)
{
$file_referer = fopen($koren_dir.'/data/statstik/referer_dat.dat', "w+");
flock ($file_referer,LOCK_EX);
$i = "49";//удаляем последние 50 постов
while($i < $nom)
{
fputs($file_referer,$str[$i]);
++$i;
}
flock ($file_referer,LOCK_UN);
fclose($file_referer);
@chmod("$koren_dir/data/statstik/referer_dat.dat", 0666);
}
$endtime=microtime();
$endtime=explode(" ",$endtime);
$endtime=$endtime[0]+$endtime[1];
$generat= $endtime - $starttime;
$generat=round($generat,4);
?>