core/api/soft/jcount/info.php

591 lines
30 KiB
PHP
Raw Normal View History

2022-12-11 13:55:49 +05:00
<? // WR-Counter v 1.5 UTF-8 // 24.12.18 г. // Miha-ingener@yandex.ru
error_reporting(0); //error_reporting (E_ALL);
include "data/config.php";
//echo $coundir;
function prcmp ($a, $b) {if ($a==$b) return 0; if ($a<$b) return -1; return 1;}
$months=array("Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь");
$weeks=array("Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота");
$deldt=time()-$days*86400; // формируем дату удаления файлов статистики
function replacer ($text) { // ФУНКЦИЯ очистки кода
$text=str_replace("&#032;",' ',$text);
$text=str_replace(">",'&gt;',$text);
$text=str_replace("<",'&lt;',$text);
$text=str_replace("\"",'&quot;',$text);
$text=preg_replace("/\n\n/",'<p>',$text);
$text=preg_replace("/\n/",'<br>',$text);
$text=preg_replace("/\\\$/",'&#036;',$text);
$text=preg_replace("/\r/",'',$text);
$text=preg_replace("/\\\/",'&#092;',$text);
$text=str_replace("\r\n","<br> ",$text);
$text=str_replace("\n\n",'<p>',$text);
$text=str_replace("\n",'<br> ',$text);
$text=str_replace("\t",'',$text);
$text=str_replace("\r",'',$text);
$text=str_replace(' ',' ',$text);
return $text; }
// 26-12-2018 - таблица стилей простая
$shapka="<HTML><head><META content='text/html; charset=UTF-8' http-equiv=Content-Type><title>Информация по посещаемости сайта</title><meta name=\"Robots\" content=\"noindex,nofollow\">$style
<style>
.block{width: 80%; min-width: 300px; min-height: 50px; box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);
border: 1px solid #f44336; transition:box-shadow .25s;padding:20px;margin:0.5rem 0 1rem 0;border-radius:2px;}
H3 {text-align:center;font-size:16px;}
</style>
</head>
<BODY text=#000000 leftMargin=0 topMargin=0 rightMargin=0 bottomMargin=0 marginheight=0 marginwidth=0>";
$host=replacer($_SERVER["HTTP_HOST"]); $self=replacer($_SERVER["PHP_SELF"]); $cnturl="https://$host$self"; $cnturl=str_replace("info.php", "", $cnturl);
if (is_file("$coundir/mainbase.csv")) $ftime=filemtime("$coundir/mainbase.csv")+300; else $ftime=0; // + 5 минут
$tektime=time();
if ($ftime<$tektime) { // Если дата создания файла mainbase.csv менее 5 минут назад, статистику НЕ ПЕРЕСТРАИВАЕМ! изм. 11.2018
$i=0; if ($handle = opendir($coundir)) {
while (($file = readdir($handle)) !== false)
if (!is_dir($file)) {
if (preg_match("/[0123456789]/",$file)==true) {$records[$i]=$file; $i++;}}
closedir($handle);
} else print 'В папке, которую вы указали нет данных счётчика!';
$itogo=count($records); $k=0; $text=null;
do {
$fline=file("$coundir/$records[$k]"); $fitogo=count($fline);
if ($fitogo!=0 and preg_match("/[0123456789]/",$records[$k]))
{
$thendayx=str_replace(".csv","",$records[$k]);
$dt=explode(".",$thendayx);
$then=mktime(0,0,0,$dt[1],$dt[0],$dt[2]);
$tekdate=date("d.m.Y",$then);
if ($deldt>$then) unlink ("$coundir/$records[$k]"); // Удаляем статистику позднее $maxdays (XX дней, указано в админке)
// Блок считает ХОСТЫ (уникальных посетителей)
usort($fline,"prcmp"); $numip="0"; $hi=0; $ab="0"; $ac="0";
do { $dt=explode(";",$fline[$hi]);
if ($ab!=$dt[0]) {$ab=$dt[0]; $numip++;}
$hi++; } while ($hi<$fitogo);
$text.="$then;$fitogo;$numip;;$records[$k];\r\n";
}
unset($fitogo);
unset($fline);
$k++;
} while ($k<$itogo);
$fp=fopen("$coundir/mainbase.csv","w");
flock ($fp,LOCK_EX);
fputs($fp,"$text");
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("$coundir/mainbase.csv", 0644);
} // if ($ftime<$tektime)
// сортируем данные
$records=file("$coundir/mainbase.csv"); $maxi=count($records); usort($records,"prcmp"); $recordsm=$records; $maxm=$maxi;
if (isset($_GET['month'])) { // изм. 12.2018 - ПРОСМОТР СТАТИСТИКИ ЗА МЕСЯЦ(весь период) (сумма по всем страницам)
$i=0; // Собираем всю статистику в файл
if (is_file("$coundir/month.csv")) $ftime=filemtime("$coundir/month.csv")+259200; else $ftime=0; // + 3 ДНЯ (обновляется статистика раз в 3 дня!)
$tektime=time();
if ($ftime<$tektime) { // Если дата создания файла менее Х дней назад, статистику НЕ ПЕРЕСТРАИВАЕМ!
$fp=fopen("$coundir/month.csv","w");
flock ($fp,LOCK_EX);
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
do { $dt=explode(";",$records[$i]);
// Собираем все дни в один файл
$dayfilename="$dt[4]"; // Собираем все просмотренные страницы и потом их сортируем
$data=file_get_contents("$coundir/$dayfilename");
$fp=fopen("$coundir/month.csv","a+");
flock ($fp,LOCK_EX);
fputs($fp,$data);
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
$i++; } while ($i<$maxi);
} // if ($ftime<$tektime)
if (is_file("$coundir/month.csv")) { $month=file("$coundir/month.csv"); $maxy=count($month); $hitm=$maxy;}
// Считываем дату создания страницы
$ftime=filemtime("$coundir/month.csv"); $tekdate=date("d.m.Y г, H:i:s",$ftime);
$i=0; do { $dt=explode(";",$month[$i]);
$newlines[$i]="$dt[4]"; // итого по каждой странице
$lines_os[$i]="$dt[3]"; // Собираем все операционные системы
$lines_br[$i]="$dt[2]"; // Собираем все браузеры
$i++; } while ($i<$maxy);
///////////// блок новый 24-12-2018 г.
$newlines2=array_count_values($newlines); // считаем кол-во посещений каждой страницы
$lines_os2=array_count_values($lines_os); // считаем кол-во операционных систем
$lines_br2=array_count_values($lines_br); // считаем кол-во браузеров
arsort($newlines2); reset($newlines2); // сортируем
arsort($lines_os2); reset($lines_os2);
arsort($lines_br2); reset($lines_br2);
//print"<PRE>"; print_r ($lines_br2); exit;
// Работаем с ОС
$msg_os="<h3 align=center>Статистика по операционным системам (по хитам)</h3><TABLE border=0 align=center>
<TR align=center><TD> п/п</TD><TD>ОС</TD><TD>Просмотров</TD></TR>";
$i=0; do { $massiv=each($lines_os2);
$num=$i+1;
$m2=round($massiv[1]*$scale1*2);
$delta=100*$massiv[1]/$maxy;
$addstyle="bgcolor=#CAFFCA";
$procent=round($delta,0); $procent="($procent %)";
if (strlen($massiv[0])<1) $massiv[0]="ОС НЕ РАСПОЗНАНА";
$msg_os.="<TR $addstyle><TD align=center>$num</TD><TD>";
$hrtext=$massiv[0]; if (strlen($massiv[0])>70) { $hrtext=substr($hrtext,0,70); $hrtext.="...";}
if ($massiv[1]>1 and $massiv[0]!="СТРАНИЦА НЕ РАСПОЗНАНА") $msg_os.="$hrtext"; else $msg_os.="$hrtext";
$msg_os.="</td><td><img src='images/g1.gif' width=$m2 height=16 border=0> <B>$massiv[1]</B> $procent</TD></TR>"; $i++; } while ($i<count($lines_os2));
$msg_os.="</TABLE><br>";
//print_r($lines_os2);
// Работаем с браузерами
$msg_br="<h3 align=center>Статистика по браузерам (по хитам)</h3><TABLE border=0 align=center><TR align=center><TD>№ п/п</TD><TD>Браузер</TD><TD>Просмотров</TD></TR>";
$msg_br_c=""; $msg_br_s=""; $msg_br_f=""; $msg_br_o=""; $itogo=nul;
$i=0; do { $massiv=each($lines_br2);
$num=$i+1; $itogo=$itogo+$massiv[1];
$m2=round($massiv[1]*$scale1*2);
$delta=100*$massiv[1]/$maxy; $addstyle="";
if(stristr($massiv[0],"chrome")) {$addstyle="bgcolor=#C1FFAA"; $msg_br_c=$msg_br_c+$massiv[1];}
if(stristr($massiv[0],"firefox")) {$addstyle="bgcolor=#FFB366"; $msg_br_f=$msg_br_f+$massiv[1];}
if(stristr($massiv[0],"opera")) {$addstyle="bgcolor=#FFAAAA"; $msg_br_o=$msg_br_o+$massiv[1];}
if(stristr($massiv[0],"safari")) {$addstyle="bgcolor=#FDFFAA"; $msg_br_s=$msg_br_s+$massiv[1];}
//Safari
$procent=round($delta,0); $procent="($procent %)";
if (strlen($massiv[0])<1) $massiv[0]="ОС НЕ РАСПОЗНАНА";
$msg_br.="<TR $addstyle><TD align=center>$num</TD><TD>";
$hrtext=$massiv[0]; if (strlen($massiv[0])>70) { $hrtext=substr($hrtext,0,70); $hrtext.="...";}
if ($massiv[1]>1 and $massiv[0]!="СТРАНИЦА НЕ РАСПОЗНАНА") $msg_br.="$hrtext"; else $msg_br.="$hrtext";
$msg_br.="</td><td><img src='images/g1.gif' width=$m2 height=16 border=0> <B>$massiv[1]</B> $procent</TD></TR>";
if ($massiv[1]=="3") $i=count($lines_br2);
$i++; } while ($i<count($lines_br2));
$msg_br.='<tr><td colspan=3 align=center><h3>ИТОГО (по самым популярным браузерам):</h3></td></tr>';
if ($msg_br_c>10) {
$mc=round($msg_br_c*$scale1); $delta=100*$msg_br_c/$maxy; $procent=round($delta,0); $procent="($procent %)";
$msg_br.="<TR><TD align=center>-</TD><TD>CHROME</td><td><img src='images/g1.gif' width=$mc height=16 border=0> <B>$msg_br_c</B> $procent</TD></TR>";}
if ($msg_br_f>10) {
$mc=round($msg_br_f*$scale1); $delta=100*$msg_br_f/$maxy; $procent=round($delta,0); $procent="($procent %)";
$msg_br.="<TR><TD align=center>-</TD><TD>FIREFOX</td><td><img src='images/g1.gif' width=$mc height=16 border=0> <B>$msg_br_f</B> $procent</TD></TR>";}
if ($msg_br_s>10) {
$mc=round($msg_br_s*$scale1); $delta=100*$msg_br_s/$maxy; $procent=round($delta,0); $procent="($procent %)";
$msg_br.="<TR><TD align=center>-</TD><TD>SAFARI</td><td><img src='images/g1.gif' width=$mc height=16 border=0> <B>$msg_br_s</B> $procent</TD></TR>";}
if ($msg_br_o>10) {
$mc=round($msg_br_o*$scale1); $delta=100*$msg_br_o/$maxy; $procent=round($delta,0); $procent="($procent %)";
$msg_br.="<TR><TD align=center>-</TD><TD>OPERA</td><td><img src='images/g1.gif' width=$mc height=16 border=0> <B>$msg_br_o</B> $procent</TD></TR>";}
$msg_br.='</TABLE><br>'; //print_r($lines_br2);
///////////// блок новый
// Работаем со страницами
$msg.="<h3 align=center>Статистика по просматриваем страницам (по хитам)</h3> <center>Дата и время генерации статистики: $tekdate<BR></center>";
$i=0; $deltaitog=0; $pages=0;
do { $massiv=each($newlines2);
$m2=round($massiv[1]*$scale1);
$delta=100*$massiv[1]/$maxy;
if ($delta>2) $addstyle="bgcolor=#E6FFE6"; else $addstyle="";
if ($delta>5) $addstyle="bgcolor=#CAFFCA";
if ($delta>10) $addstyle="bgcolor=#64FF64";
if ($delta>"0.1") { // Если просмотров больше 0.1%
$deltaitog=$deltaitog+$delta;
$pages=$pages+$massiv[1];
$procent=round($delta,1); $procent="($procent %)";
if (strlen($massiv[0])<1) $massiv[0]="СТРАНИЦА НЕ РАСПОЗНАНА";
$msg.="<TR $addstyle><TD align=center>$i</TD><TD>";
$hrtext=$massiv[0]; if (strlen($massiv[0])>70) { $hrtext=substr($hrtext,0,70); $hrtext.="...";}
if ($massiv[1]>1 and $massiv[0]!="СТРАНИЦА НЕ РАСПОЗНАНА") $msg.="<a href='$massiv[0]'>$hrtext</a>"; else $msg.="$hrtext";
$msg.="</td><td><img src='images/g1.gif' width=$m2 height=16 border=0> <B>$massiv[1]</B> $procent</TD></TR>";
} // if ($delta>0,1) {
$i++; } while ($i<=count($newlines2));
$deltaitog=round($deltaitog,1);
$msg.="<TR $addstyle><TD align=center>-</TD><TD><B>ИТОГО с посещаемостью >= 0.1%:</B></td><td><B>$pages ($deltaitog %)</B></TD></TR>";
// +++ Выводим статистику по ОПЕРАЦИОННЫМ СИСТЕМАМ и браузерам
print"$shapka<center><a href='https://$host'>Главная сайта</a> :: <a href='info.php'>Страница статистики</a> :: <a href='info.php?month'>Статистика за период</a><BR><BR>
<table border=0 cellSpacing=0 cellPadding=0 align=center>
<TR align=center><TD> п/п</TD><TD>Страница</TD><TD>Просмотров *</TD></TR>
$msg </table> $msg_os $msg_br </center>";
//echo'<PRE>'; print_r($newlines2);
exit; } // if isset($month)
if (isset($_GET['day'])) { $day=$_GET['day']; // ПРОСМОТР СТАТИСТИКИ ЗА СУТКИ (по каждой странице)
if (strlen($day)<12 and ctype_digit($day)) {
$file=date("d.m.Y",$day);
if (is_file("$coundir/$file.csv")) { $records=file("$coundir/$file.csv"); $maxi=count($records); $hitov=$maxi;
if (isset($_POST['findme'])) {
$findme=replacer($_POST['findme']);
$stroka=strlen($findme); if($stroka>2 and $stroka<30) {
$temprecord=$records; $records=null; $i=0; $hitov=count($temprecord);
foreach($temprecord as $v) {if (strpos($v,$findme)) {$i++; $records[$i]=$v;}}
$maxi=$i; $hitov="$hitov / $maxi";}} else $findme="";
// Блок считает ХОСТЫ (уникальных посетителей)
usort($records,"prcmp");
$numip=0; $numsys=0; $i=0; $ab="0"; $ac="0"; $ad="0"; $newlines=null;
do { $dt=explode(";",$records[$i]);
// Собираем все страницы
$newlines[$i]="$dt[4]"; // Собираем все просмотренные страницы и потом их сортируем
$lines_os[$i]="$dt[3]"; // Собираем все операционные системы
$lines_br[$i]="$dt[2]"; // Собираем все браузеры
$lines_tm[$i]=date("H",$dt[1]); // Собираем время просмотра
$i++; } while ($i<$maxi);
usort($newlines,"prcmp"); $i=0;
do { $dt=explode(";",$records[$i]);
if ($ab!=$dt[0]) {$ab=$dt[0]; $numip++;}
if ($ad!=$newlines[$i]) {$ad=$newlines[$i]; $numsys++;}
$i++; } while ($i<$maxi);
$i=1; $msg=""; // Собираем информацию о посещаемых страницах
$newlines2=array_count_values($newlines); // считаем кол-во посещений каждой страницы
$lines_os2=array_count_values($lines_os); // считаем кол-во операционных систем
$lines_br2=array_count_values($lines_br); // считаем кол-во браузеров
$lines_tm2=array_count_values($lines_tm); // сворачиваем по времени
arsort($newlines2); reset($newlines2); // сортируем
arsort($lines_os2); reset($lines_os2);
arsort($lines_br2); reset($lines_br2);
arsort($lines_tm2); reset($lines_tm2);
//print"<PRE>"; print_r ($lines_tm2); exit; // проверка что в переменной
// Статистика по часам
$msg_tm="<div class=block><h3 align=center>Статистика по времени просмотра страниц (время посещения)</h3>";
$msg_tm.="
<TABLE border=0 cellspacing=0 cellpadding=10 align=center><TR>";
for ($t=0; $t<50; $t++) { // начало FOR
if (isset($lines_tm2[$t])) {$tm2=$lines_tm2[$t]; $hey=round($tm2*$scale1*0.8); $msg_tm.="<TD valign=bottom align=center><small>$tm2</small><BR><div style='height:$hey;BACKGROUND-COLOR:red;'></dv></TD>";}
else {if ($t<24) $msg_tm.="<TD></TD>";}
if ($t==25) $msg_tm.="<TR align=center>";
if ($t>25) {$ta=$t-25; $msg_tm.="<TD>$ta</TD>";}
}
$msg_tm.="</TR><TR><TD colspan=24 align=center>ВРЕМЯ суток, распределение посетителей по часам</TD></TR></table></div>";
// Работаем со страницами
$msg.="<h3 align=center>Статистика по просматриваем страницам (по хитам)</h3>";
do { $massiv=each($newlines2);
$m2=round($massiv[1]*$scale1*5);
$delta=100*$massiv[1]/$maxi;
if ($delta>2) $addstyle="bgcolor=#E6FFE6"; else $addstyle="";
if ($delta>5) $addstyle="bgcolor=#CAFFCA";
if ($delta>10) $addstyle="bgcolor=#64FF64";
$procent=round($delta,1); $procent="($procent %)";
if (strlen($massiv[0])<1) $massiv[0]="СТРАНИЦА НЕ РАСПОЗНАНА";
$msg.="<TR $addstyle><TD align=center>$i</TD><TD>";
$hrtext=$massiv[0]; if (strlen($massiv[0])>70) { $hrtext=substr($hrtext,0,70); $hrtext.="...";}
if ($massiv[1]>1 and $massiv[0]!="СТРАНИЦА НЕ РАСПОЗНАНА") $msg.="<a href='$massiv[0]'>$hrtext</a>"; else $msg.="$hrtext";
$msg.="</td><td><img src='images/g1.gif' width=$m2 height=16 border=0> <B>$massiv[1]</B> $procent</TD></TR>"; $i++; } while ($i<=count($newlines2));
// Работаем с ОС
$msg_os="<h3 align=center>Статистика по операционным системам (по хитам)</h3><TABLE border=0>
<TR align=center><TD> п/п</TD><TD>ОС</TD><TD>Просмотров</TD></TR>";
$i=0; do { $massiv=each($lines_os2);
$num=$i+1;
$m2=round($massiv[1]*$scale1*2);
$delta=100*$massiv[1]/$maxi;
$addstyle="bgcolor=#CAFFCA";
$procent=round($delta,0); $procent="($procent %)";
if (strlen($massiv[0])<1) $massiv[0]="ОС НЕ РАСПОЗНАНА";
$msg_os.="<TR $addstyle><TD align=center>$num</TD><TD>";
$hrtext=$massiv[0]; if (strlen($massiv[0])>70) { $hrtext=substr($hrtext,0,70); $hrtext.="...";}
if ($massiv[1]>1 and $massiv[0]!="СТРАНИЦА НЕ РАСПОЗНАНА") $msg_os.="$hrtext"; else $msg_os.="$hrtext";
$msg_os.="</td><td><img src='images/g1.gif' width=$m2 height=16 border=0> <B>$massiv[1]</B> $procent</TD></TR>"; $i++; } while ($i<count($lines_os2));
$msg_os.="</TABLE><br>";
//print_r($lines_os2);
// Работаем с браузерами
$msg_br="<h3 align=center>Статистика по браузерам (по хитам)</h3><TABLE border=0><TR align=center><TD>№ п/п</TD><TD>Браузер</TD><TD>Просмотров</TD></TR>";
$msg_br_c=""; $msg_br_s=""; $msg_br_f=""; $msg_br_o=""; $itogo=nul;
$i=0; do { $massiv=each($lines_br2);
$num=$i+1; $itogo=$itogo+$massiv[1];
$m2=round($massiv[1]*$scale1*2);
$delta=100*$massiv[1]/$maxi; $addstyle="";
if(stristr($massiv[0],"chrome")) {$addstyle="bgcolor=#C1FFAA"; $msg_br_c=$msg_br_c+$massiv[1];}
if(stristr($massiv[0],"firefox")) {$addstyle="bgcolor=#FFB366"; $msg_br_f=$msg_br_f+$massiv[1];}
if(stristr($massiv[0],"opera")) {$addstyle="bgcolor=#FFAAAA"; $msg_br_o=$msg_br_o+$massiv[1];}
if(stristr($massiv[0],"safari")) {$addstyle="bgcolor=#FDFFAA"; $msg_br_s=$msg_br_s+$massiv[1];}
//Safari
$procent=round($delta,0); $procent="($procent %)";
if (strlen($massiv[0])<1) $massiv[0]="ОС НЕ РАСПОЗНАНА";
$msg_br.="<TR $addstyle><TD align=center>$num</TD><TD>";
$hrtext=$massiv[0]; if (strlen($massiv[0])>70) { $hrtext=substr($hrtext,0,70); $hrtext.="...";}
if ($massiv[1]>1 and $massiv[0]!="СТРАНИЦА НЕ РАСПОЗНАНА") $msg_br.="$hrtext"; else $msg_br.="$hrtext";
$msg_br.="</td><td><img src='images/g1.gif' width=$m2 height=16 border=0> <B>$massiv[1]</B> $procent</TD></TR>";
if ($massiv[1]=="3") $i=count($lines_br2);
$i++; } while ($i<count($lines_br2));
$msg_br.='<tr><td colspan=3 align=center><h3>ИТОГО (по самым популярным браузерам):</h3></td></tr>';
if ($msg_br_c>10) {
$mc=round($msg_br_c*$scale1); $delta=100*$msg_br_c/$maxi; $procent=round($delta,0); $procent="($procent %)";
$msg_br.="<TR><TD align=center>-</TD><TD>CHROME</td><td><img src='images/g1.gif' width=$mc height=16 border=0> <B>$msg_br_c</B> $procent</TD></TR>";}
if ($msg_br_f>10) {
$mc=round($msg_br_f*$scale1); $delta=100*$msg_br_f/$maxi; $procent=round($delta,0); $procent="($procent %)";
$msg_br.="<TR><TD align=center>-</TD><TD>FIREFOX</td><td><img src='images/g1.gif' width=$mc height=16 border=0> <B>$msg_br_f</B> $procent</TD></TR>";}
if ($msg_br_s>10) {
$mc=round($msg_br_s*$scale1); $delta=100*$msg_br_s/$maxi; $procent=round($delta,0); $procent="($procent %)";
$msg_br.="<TR><TD align=center>-</TD><TD>SAFARI</td><td><img src='images/g1.gif' width=$mc height=16 border=0> <B>$msg_br_s</B> $procent</TD></TR>";}
if ($msg_br_o>10) {
$mc=round($msg_br_o*$scale1); $delta=100*$msg_br_o/$maxi; $procent=round($delta,0); $procent="($procent %)";
$msg_br.="<TR><TD align=center>-</TD><TD>OPERA</td><td><img src='images/g1.gif' width=$mc height=16 border=0> <B>$msg_br_o</B> $procent</TD></TR>";}
$msg_br.='</TABLE><br>'; //print_r($lines_br2);
$dayn=date("w",$day); // Считаваем день недели по порядку
$lastday1=date("d.m.Y",$day-86400); $lastday2=$day-86400;
$nextday1=date("d.m.Y",$day+86400);$nextday2=$day+86400;
print"$shapka<center><a href='https://$host'>Главная сайта</a> :: <a href='info.php'>Страница статистики</a> :: <a href='info.php?month'>Статистика за период</a><BR><BR>
<table align=center width=50% border=0><TR><TD align=center bgcolor=#F2F2F2>";
// Если нет данных за выбранную дату, то выдаём сообщение с ошибкой!
if (!is_file("$coundir/$lastday1.csv")) print"<a href='#' onclick=\"alert('Нет данных за дату - $lastday1 г.'); return false;\">«««<br> Предыдущая дата:<br>$lastday1 г.</a>";
else print"<a href='info.php?day=$lastday2'>«<br> Предыдущая дата:<br>$lastday1 г.</a>";
print"</TD>
<TD><center>Дата: <B>$file</B> г.<br><B>";
if ($dayn!=0 and $dayn!=6) print"$weeks[$dayn]"; else print "<font color=red>$weeks[$dayn]</font>";
print"</B><br>
Итого хиты / хосты: <font size=+2><B>$hitov</B></font> / <font size=+2><B>$numip</B></font><br>
Уникальных страниц: <font size=+2><B>$numsys</B></font></TD>
<TD align=center bgcolor=#F2F2F2>";
// Если нет данных за выбранную дату, то выдаём сообщение с ошибкой!
if (!is_file("$coundir/$nextday1.csv")) print"<a href='#' onclick=\"alert('Нет данных за дату - $nextday1 г.'); return false;\">Следующая дата:<br>$nextday1 г.<br> »</a>";
else print"<a href='info.php?day=$nextday2'>Следующая дата:<br>$nextday1 г.<br> »</a>";
print"</TD></TR></TABLE><br>";
// Выводим все даты, когда были посещения
echo'<table><TR><TD>Все даты: ';
for ($m=0; $m<$maxm; $m++) { // начало FOR
$dtt=explode(";",$recordsm[$m]);
if (!isset($m0)) {$m0=date("m",$dtt[0])-1;}
if ($m==$maxm-1) {$m1=date("m",$dtt[0])-1;}
$xday=date("d",$dtt[0]);
$dayn=date("w",$dtt[0]); // Считаваем день недели по порядку
if ($dayn=="0" or $dayn=="6") $weekstyle="bgcolor=#FF7979"; else $weekstyle="";
print"<td width=30 $weekstyle align=center><font size=+1>";
if ($day==$dtt[0]) print"<B>$xday</B>"; else print"<a href='info.php?day=$dtt[0]'>$xday</a>";
print"</font></TD>\r\n"; } // конец FOR
echo'</TR></TABLE>';
print"<br><br>
<div><form action='info.php?day=$day' method=POST name=finder>
Фильтр по адресу страницы: <input name='findme' value='$findme' class=post type='text' maxlength=50 size=20>
<input type=submit value='выбрать'>
</form></div>";
print"<table border=0 cellSpacing=0 cellPadding=0 align=center>
<TR align=center><TD> п/п</TD><TD>Страница</TD><TD>Просмотров *</TD></TR>
$msg
</table>
";
// Выводим статистику по ОПЕРАЦИОННЫМ СИСТЕМАМ и браузерам
print "$msg_tm $msg_os $msg_br </center>";
} else { header("HTTP/1.1 404 Moved Permanently"); header("Location: info.php"); exit(); } // if is_file
}
echo'<br><small>* При использовании поиска количество хостов, уникальных страниц, а также процент считается от<br>
того количества страниц, которое попало под фильтр, а не от общего количества страниц!</small>';
} else { // if isset($day). ИНАЧЕ показываем общую страницу статистики
print"$shapka<center><B>Информация по посещаемости</B> *<TABLE cellSpacing=0 cellPadding=0 width=\"98%\"><TR><TD valign=top>";
if (sizeof($records)>=1) { // ЕСЛИ есть данные - то выводим графики
if ($gtype=="1") { $itogohit=0; $itogohost=0; // ГОРИЗОНТАЛЬНЫЙ график
$xdaym="</TR><TR><TD align=center><small>Дата</TD><TD>&nbsp;</TD>\r\n "; $graph1=""; $graph2=""; // Формируем данные для графиков
$g1shapka="<table border=0 cellSpacing=0 cellPadding=0 align=center><tr align=center valign=bottom><TD valign=middle><small>К<BR>О<BR>Л<BR>-<BR>В<BR>О<BR><B><BR>Х<BR>И<BR>Т<BR>О<BR>В</TD><TD><img src='images/v1scale.gif' border=0></TD>\r\n";
$g2shapka="<table border=0 cellSpacing=0 cellPadding=0 align=center><tr align=center valign=bottom><TD valign=middle><small>К<BR>О<BR>Л<BR>-<BR>В<BR>О<BR><B><BR>Х<BR>О<BR>С<BR>Т<BR>О<BR>В</TD><TD><img src='images/v2scale.gif' border=0></TD>\r\n";
for ($i=0; $i<$maxi; $i++) { // начало FOR
$dtt=explode(";",$records[$i]);
$dttn1=round($dtt[1]*$scale1); // шкала 1-го графика
$dttn2=round($dtt[2]*$scale2); // шкала 2-го графика
$itogohit=$itogohit+$dtt[1];
$itogohost=$itogohost+$dtt[2];
$graph1.="<TD><table cellSpacing=0 cellPadding=0><TR><TD width=24 align=center><small>$dtt[1]</small></TD></TR><TR><TD align=center><img src='images/v1.gif' height=$dttn1 width=20></TD></TR></TABLE></td>\r\n";
$graph2.="<TD><table cellSpacing=0 cellPadding=0><TR><TD width=24 align=center><small>$dtt[2]</small></TD></TR><TR><TD align=center><img src='images/v2.gif' height=$dttn2 width=20></TD></TR></TABLE></td>\r\n";
if (!isset($m0)) {$m0=date("m",$dtt[0])-1;}
if ($i==$maxi-1) {$m1=date("m",$dtt[0])-1;}
$xday=date("d",$dtt[0]);
$dayn=date("w",$dtt[0]); // Считаваем день недели по порядку
if ($dayn=="0" or $dayn=="6") $weekstyle="bgcolor=#FF7979"; else $weekstyle="";
$xdaym.="<td $weekstyle align=center><small><a href='info.php?day=$dtt[0]'>$xday</a></small></TD>\r\n";
} // конец FOR
$xdaym.="<td width=100 align=center>&nbsp;</TD><td align=center><small><a href='info.php?month'>ИТОГО</a></small></TD>";
$xdaym.="<td align=center><small><a href='info.php?month'>Среднее</a></small></TD>";
$graph1.="<td align=center>&nbsp;</TD><TD><table cellSpacing=0 cellPadding=0><TR><TD width=24 align=center><small>$itogohit</small></TD></TR><TR><TD align=center><img src='images/v1.gif' height=230 width=20></TD></TR></TABLE></td>\r\n";
$srednee=ceil($itogohit/$maxi); $srednee1=ceil($srednee*$scale1);
$graph1.="<TD><table cellSpacing=0 cellPadding=0><TR><TD width=70 align=center><small>$srednee</small></TD></TR><TR><TD align=center><img src='images/v1.gif' height='$srednee1' width=20></TD></TR></TABLE></td>\r\n";
$graph2.="<td align=center>&nbsp;</TD><TD><table cellSpacing=0 cellPadding=0><TR><TD width=24 align=center><small>$itogohost</small></TD></TR><TR><TD align=center><img src='images/v2.gif' height=230 width=20></TD></TR></TABLE></td>\r\n";
$srednee=ceil($itogohost/$maxi); $srednee2=ceil($srednee*$scale2);
$graph2.="<TD><table cellSpacing=0 cellPadding=0><TR><TD width=70 align=center><small>$srednee</small></TD></TR><TR><TD align=center><img src='images/v2.gif' height='$srednee2' width=20></TD></TR></TABLE></td>\r\n";
$mm1=$months[$m0]; $mm2=$months[$m1]; if ($mm1==$mm2) {$mm1="";} else {$mm1.=" - ";}
$msdat="</TR></TABLE><center>Период: &nbsp; <B>$mm1 $mm2</B> ($days дн.)</center>\r\n";
print"$g1shapka $graph1 $xdaym </TR></TABLE>"; // печатаем 1-ый ГРАФИК
print"$g2shapka $graph2 $xdaym $msdat"; // печатаем 2-ой ГРАФИК
} else { // ВЕРТИКАЛЬНЫЙ график
$g1shapka="<table cellSpacing=0 cellPadding=0 align=center><tr align=center valign=bottom><TD valign=middle><small>Дата</TD><TD>КОЛ-ВО <B>ХИТОВ</TD></TR><TR><TD>&nbsp;</TD><TD><img src='images/g1scale.gif' border=0></TD>\r\n";
$g2shapka="<table cellSpacing=0 cellPadding=0 align=center><tr align=center valign=bottom><TD valign=middle><small>Дата</TD><TD>КОЛ-ВО <B>ХОСТОВ</TD></TR><TR><TD>&nbsp;</TD><TD><img src='images/g2scale.gif' border=0></TD>\r\n";
$xdaym=""; $graph1=""; $graph2=""; // Формируем данные для графиков
for ($i=0; $i<$maxi; $i++) { // начало FOR
$dtt=explode(";",$records[$i]);
//$dtt[0]=date("d.m.y",$dtt[0]);
if (!isset($m0)) {$m0=date("m",$dtt[0])-1;}
if ($i==$maxi-1) {$m1=date("m",$dtt[0])-1;}
$xday=date("d",$dtt[0]);
$dttn1=round($dtt[1]*$scale1); // шкала 1-го графика
$dttn2=round($dtt[2]*$scale2); // шкала 2-го графика
$graph1.="<tr><TD align=center><small>$xday</small></TD><td><table cellSpacing=0 cellPadding=0><TR><TD><img src='images/g1.gif' height=16 width=$dttn1></TD><TD align=center>&nbsp; <small>$dtt[1]</small></TD></TR></TABLE></td></tr>";
$graph2.="<tr><TD align=center><small>$xday</small></TD><td><table cellSpacing=0 cellPadding=0><TR><TD><img src='images/g2.gif' height=16 width=$dttn2></TD><TD align=center>&nbsp; <small>$dtt[2]</small></TD></TR></TABLE></td></tr>";
} // конец FOR
$mm1=$months[$m0]; $mm2=$months[$m1]; if ($mm1==$mm2) {$mm1="";} else {$mm1.=" - ";}
$msdat="</tr><TR><TD colspan=2><center><small>Период:</small> <B>$mm1 $mm2</B></center>\r\n";
print"<BR>$g1shapka $graph1 $xdaym </TR></TABLE></TD><TD width='50%' valign=top> <!-- Делим экран пополам -->"; // печатаем 1-ый ГРАФИК
print"<BR>$g2shapka $graph2 $xdaym </TR></TABLE></TD>$msdat<BR>"; // печатаем 2-ой ГРАФИК
} // else ($gtype)
print"</center><small>P.S. <B>Хиты</B> - общее количество просмотров страниц где установлен счётчик;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <B>Хосты</B> - количество посетителей с уникальным IP-адресом.<BR>
Статистика обновляется каждые 5 минут. Следующее обновление в ". date("H:i:s",$ftime)."</small>";
} else {print"<center><br><br>Данные для графика отсутствуют.<br> Посещений за последний период не было.<br><br>";}
} // else от if isset($day)
?>
</TD></TR></table>
</body></html>