big-moving.ru/api/soft/counter/infomail.php

148 lines
6.4 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<? // WR-Counter v 1.3 // 24.07.12 г. // Miha-ingener@yandex.ru
#error_reporting (E_ALL);
include("config.php");
$months=array("Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь");
$deldt=time()-$days*86400; // формируем дату удаления объявления
function prcmp ($a, $b) {if ($a==$b) return 0; if ($a<$b) return -1; return 1;}
$i=0;
if ($handle = opendir($datadir)) {
while (($file = readdir($handle)) !== false)
if (!is_dir($file)) {$lines[$i]=$file; $i++;}
closedir($handle);
} else {print 'В папке, которую вы указали нет данных счётчика!';}
$itogo=count($lines); $k=0; $text=null;
do {
$fline=file("$datadir/$lines[$k]");
$fitogo=count($fline);
if ($fitogo!=0 and $lines[$k]!="all.dat" and $lines[$k]!="last.dat" and $lines[$k]!="mainbase.dat" and $lines[$k]!=".htaccess") {
$thendayx=str_replace(".dat","",$lines[$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 ("$datadir/$lines[$k]");}
// Блок считает ХОСТЫ (уникальных посетителей)
usort($fline,"prcmp");
$numip="0"; $numsys="0"; $hi=0; $ab="0"; $ac="0";
do {
$dt=explode("|",$fline[$hi]);
if ($ab!=$dt[0]) {$ab=$dt[0]; $numip++;}
if (isset($dt[2])) {if ($ac!=$dt[2]) {$ac=$dt[2]; $numsys++;}}
$hi++;
} while ($hi<$fitogo);
$text.="$then|$fitogo|$numip|$numsys|\r\n";
}
$k++;
} while ($k<$itogo);
$fp=fopen("$datadir/mainbase.dat","w");
flock ($fp,LOCK_EX);
fputs($fp,"$text");
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("$datadir/mainbase.dat", 0644);
// сортируем данные
$lines=file("$datadir/mainbase.dat");
$maxi=count($lines); usort($lines,"prcmp");
$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
$cnturl1="http://$host$self"; $cnturl1=str_replace("counter.php", "info.php", $cnturl1);
$cnturl=str_replace("infomail.php", "counter.php", $cnturl1);
// Формируем статистику посещений (ХИТЫ/ХОТСЫ)
$msg="<HTML><head><META content='text/html; charset=UTF-8' http-equiv=Content-Type><style>BODY {FONT-FAMILY: Verdana; FONT-SIZE: 11px} TD {FONT-SIZE: 10px}</style></head>
<BODY text=#000000 leftMargin=0 topMargin=0 rightMargin=0 bottomMargin=0 marginheight=0 marginwidth=0><center>
<B>Информация по посещаемости сайта</B><BR>Сгенерирована по данным счётчика за $days дней: <a href='$cnturl'>$cnturl</a>
<TABLE cellSpacing=0 cellPadding=0 width='98%'><TR><TD>\r\n";
// выводим 1 график - ХИТЫ
$msg.="<table cellSpacing=0 cellPadding=0 align=center><tr height=250 align=center valign=bottom><TD valign=middle>К<BR>О<BR>Л<BR>-<BR>В<BR>О<BR><B><BR>Х<BR>И<BR>Т<BR>О<BR>В</TD>\r\n";
for ($i=0; $i<$maxi; $i++) {
$dtt=explode("|",$lines[$i]);
$dtt[0]=date("d.m.y",$dtt[0]);
$dttn=round($dtt[1]*$scale1);
$msg.="<TD><table cellPadding=0><TR><TD align=center>$dtt[1]</TD></TR><TR><TD><table cellPadding=0><TR><TD height=$dttn width=15 bgcolor=#3E8D32>&nbsp;&nbsp;&nbsp;&nbsp;</TD></TR></table></TD></TR></TABLE></td>\r\n";
}
$msg.="</TR><TR><TD align=center>Дата</TD>\r\n";
for ($i=0; $i<$maxi; $i++) {
$dtt=explode("|",$lines[$i]);
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="";
$msg.="<td $weekstyle align=center><a href='$cnturl1?day=$dtt[0]'>$xday</a></TD>\r\n"; }
$mm1=$months[$m0]; $mm2=$months[$m1]; if ($mm1==$mm2) {$mm1="";} else {$mm1.=" - ";}
$msg.="</tr><TR><TD>Месяц</TD><TD align=center colspan=$i>$mm1 $mm2</TD></TR></TABLE>\r\n";
// выводим 2 график - ХОСТЫ
$msg.="<table cellSpacing=0 cellPadding=0 align=center><tr align=center valign=bottom><TD valign=middle>К<BR>О<BR>Л<BR>-<BR>В<BR>О<BR><B><BR>Х<BR>О<BR>С<BR>Т<BR>О<BR>В</TD>\r\n";
for ($i=0; $i<$maxi; $i++) {
$dtt=explode("|",$lines[$i]);
$dtt[0]=date("d.m.y",$dtt[0]);
$dttn=round($dtt[2]*$scale2);
$msg.="<TD><table cellPadding=0><TR><TD align=center>$dtt[2]</TD></TR><TR><TD><table cellPadding=0><TR><TD height=$dttn width=15 bgcolor=#275EC2>&nbsp;&nbsp;&nbsp;&nbsp;</TD></TR></table></TD></TR></TABLE></td>\r\n";
}
$msg.="</TR><TR><TD align=center>Дата</TD>\r\n";
for ($i=0; $i<count($lines);$i++) {
$dtt=explode("|",$lines[$i]);
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="";
$msg.="<td $weekstyle align=center><a href='$cnturl1?day=$dtt[0]'>$xday</a></TD>\r\n"; }
$mm1=$months[$m0]; $mm2=$months[$m1]; if ($mm1==$mm2) {$mm1="";} else {$mm1.=" - ";}
$msg.="</tr><TR><TD>Месяц</TD><TD align=center colspan=$i>$mm1 $mm2</TD></TR></TABLE>\r\n";
$msg.="</TD></TR></TABLE>
</center>P.S. <B>Хиты</B> - кол-во посещений страниц где установлен счётчик;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <B>Хосты</B> - кол-во посетителей с уникальным IP-адресом.<BR>
* Данное сообщение сгенерировано и отправлено роботом, отвечать на него не нужно.<BR><BR>
<center>Powered by <a href='http://www.wr-script.ru/' target='_blank'>WR-Counter</a> &copy; 1.2<br></center>
</TD></TR></table>
</body></html>";
$text=time();
$fp=fopen("$datadir/last.dat","w");
flock ($fp,LOCK_EX);
fputs($fp,"$text");
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("$datadir/last.dat", 0644);
$headers=null; // Настройки для отправки писем
$headers.="Content-Type: text/html; charset=UTF-8\r\n";
$headers.="From: Администратор <".$adminemail.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";
mail("$adminemail", "Статистика WR-Log за неделю ($host)",$msg,$headers);
?>