File size: 5.73Kb
<?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 и выше(логи с HTML кодом)
$logfile2=($_SERVER['DOCUMENT_ROOT'].'/capcyk/log/log2.dat'); //файл-хранилище, права 666 и выше(только логи)
$all="<tr><td nowrap bgcolor=\"#dcdcdc\"><a href=\"http://wen.ru/whois/?ip=$ip&w=htm\">$ip</a></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); //закрываем (блокировка снимется сама)
$logal="[$ip]";
$logal.="[$dat]";
$logal.="[$ua]";
$logal.="[$referer]
";
$f=fopen($logfile2,'a+'); //создаем/открываем
flock($f,2); //блокируем
fwrite($f,$logal); //записываем
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); //закрываем (блокировка снимется сама)
//////////////////////////////////////////////////////////////////////////////////////////////////
///для того что бы скрипт выводил на страницу информацию о логах - раскомментируйте текст ниже:)//
//////////////////////////////////////////////////////////////////////////////////////////////////
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Логи</title></head>
<body bgcolor="#999999">
<table width="100%" border="0" cellspacing="2" cellpadding="0" align="center" bgcolor="#000000">
<caption><font color="#ffffff">IP адрес,Дата и время,Браузер,Рефер</font></caption>';
$filerazmer=filesize($_SERVER['DOCUMENT_ROOT'].'/capcyk/log/log2.dat');
$vsego='25';
$file=file($_SERVER['DOCUMENT_ROOT'].'/capcyk/log/log.dat');
if (!file_exists($_SERVER['DOCUMENT_ROOT'].'/capcyk/log/log.dat') or count($file)=='0')
{echo 'Пусто!<br/>';}
else {
if (empty($page))
{
$page=1;
}
$obsum=$page*$vsego;
$nasum=$obsum-$vsego;
for($i=$nasum; $i<$obsum; $i++)
{
if(isset($file[$i]))
{
echo $file[$i]; //Вывод содержимого строки, в цикле
}
}
if (count($file)<=$i)
{
$endd=1;
}
$page_count=ceil(count($file)/$vsego);
if ($page==1 && $endd==1){echo '</table>';}else{
if ($page==1){}else{echo '</table><a href="?page='.($page-1).'"><<< Назад</a>';}
if ($endd==1){echo '<br/>';}else{echo '</table><a href="?page='.($page+1).'">Далее >>></a><br/>';}
if ($page_count>2){
echo 'Выбор страницы (1-'.$page_count.'):<br/>
<form action="" method="get">
<input name="page" type="text" maxlength="4" size="5" value="'.$page.'">
<input type="submit" value="перейти"></form>';}}}
echo 'Хосты:'.$host.'<br/>Хиты:'.$hit.'<br/>Всего записей в log файле:'.count($file).'<br/>Размер файла:'.$filerazmer.' байт<br/></body></html>';
?>