<?php
////////////////////////////////////////////////////
///тут был САРСУК /////////////
///Скрипт статистики сайта /////////////
////////////////////////////////////////////////////
Error_Reporting(0);
/////////////////////////////////////////////////
/////логи //////////////////////////
/////////////////////////////////////////////////
$ua=$_SERVER['HTTP_USER_AGENT']; //браузер
$ip=$_SERVER['REMOTE_ADDR']; //ip
$referer=$_SERVER['HTTP_REFERER'];///рефер
$dat=date("d/M/Y|H:i:s");///дата, время
$logfile=($_SERVER['DOCUMENT_ROOT'].'/capcyk/log/log.dat'); //файл-хранилище, права 666 и выше(если директория не существует ее необходимо создать
$all="<tr><td nowrap bgcolor=\"#dcdcdc\">$ip</td><td nowrap bgcolor=\"#dcdcdc\">$dat</td><td nowrap bgcolor=\"#dcdcdc\">$ua</td><td nowrap bgcolor=\"#dcdcdc\"><a href=\"$referer\">$referer</a></td></tr>
";
$f=fopen($logfile,'a+'); //создаем/открываем
flock($f,2); //блокируем
fwrite($f,$all); //записываем
fclose($f); //закрываем (блокировка снимется сама)
//////////////////////////////////////////////////////////////////////////////
//////////////////счетчик /////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
$ua2=$_SERVER['HTTP_USER_AGENT']; //браузер
$ip2=$_SERVER['REMOTE_ADDR']; //ip
$uniq=serialize(array($ip2,$ua2))."\n"; //упакованные данные
$store=($_SERVER['DOCUMENT_ROOT'].'/capcyk/log/counter.dat'); //файл-хранилище, права 666 и выше
$offset=0*3600; //смещение по времени в секундах
$date_now=date('d',time()+$offset); //сегодняшнее число
$date_access=date('d',filemtime($store)+$offset); //время последней модификации файла
if ($date_now!=$date_access && file_exists($store))
{ unlink($store);//если даты не совпадают, то пора обнулить счетчик, удаляем файл (для директории надо выставить права 766)
}
if (!file_exists($store))
{ $hit=1; $host=1; //если файла данных не существует
}
else
{$data=file($store); //получаем стоки из файла
$data[]=$uniq; //добавляем к данным текущего юзера
$hit=count($data); //сколько строк, столько и хитов
$ip_ua=array();//считаем хосты
$ip_ua[]=$uniq; //запихиваем текущего юзера
foreach ($data as $v)
{ if (!in_array($v,$ip_ua)) //если такой комбинации нет, то
$ip_ua[]=$v; //увеличиваем уникальные записи
} $host=count($ip_ua); //число уникальных строк
}
$f=fopen($store,'a+'); //создаем/открываем
flock($f,2); //блокируем
fwrite($f,$uniq); //записываем упакованный массив
fclose($f); //закрываем (блокировка снимется сама)
?>