| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Denis Arkhipov 08.06.2004 18:30
<?php
ignore_user_abort (true);
Spesta ();
ignore_user_abort (false);
function Spesta ()
{
global $_REQUEST, $ref, $pg, $s_addurl, $out, $filterfile, $cfile, $rtran, $typo;
if (!isset ($s_addurl))
{
$z=dirname(__FILE__);
$z2=$_SERVER['DOCUMENT_ROOT'].dirname ($_SERVER['PHP_SELF']);
$s_addurl=substr ($z, strpos ($z, $z2)+strlen($z2));
if ($s_addurl!="") $s_addurl.="/";
}
else $s_addurl=str_replace (":","", $s_addurl);
include ($s_addurl."func.php");
if (!isset ($ref)) $ref=$GLOBALS['HTTP_REFERER'];
if (!isset ($pg)) $pg=$GLOBALS['REQUEST_URI'];
// REQUEST_URI bugfix
$url=parse_url($pg);
$pg=$url['path'];
if ($url['query']!="") $pg.="?".$url['query'];
if ($s_addurl=="")
{
$showcounter=="no";
header ("Content-type: image/gif");
include ($s_addurl."p.gif");
// exit ();
}
// WEB_SPIDERS CHECK
foreach ($robots as $r)
{
if (stristr($_SERVER['HTTP_USER_AGENT'], $r)!=false)
$spider = 1;
}
if ($spider)
{
loggg ($s_addurl."data/spiders.txt", $_SERVER['HTTP_USER_AGENT']);
}
else
{
$url = urldecode ($ref);
if (($url!="") and (!stristr ($url, $host)))
{
if (stristr($url, "="))
{
if(stristr($url, "yand")) { $sw = "text="; $engine = "Y"; } else
if(stristr($url, "google.")) { $sw="q="; $engine = "G"; } else
if((stristr($url, "go.mail.ru")) and (stristr($url, "words="))) { $sw="words="; $engine = "M"; } else
if(stristr($url, "go.mail.ru")) { $sw = "q="; $engine = "M"; } else
if(stristr($url, "rambler")) { $sw = "words="; $engine = "R"; } else
if(stristr($url, "sm.aport")) { $sw="r="; $engine = "A"; } else
if(stristr($url, "search.yahoo")) { $sw="p="; $engine = "H"; } else
if(stristr($url, "aolsearch")) { $sw="query="; $engine = "O"; } else
if(stristr($url, "q=")) { $sw = "q="; $engine = "?"; } else
if(stristr($url, "query=")) { $sw = "query="; $engine = "?"; }
}
$req=1;
if (isset($engine))
{
$req=0;
$url2=urldecode($url);
$url2=stripslashes ($url2);
$url2=strip_tags ($url2);
if (stristr($url, "yandpage")) {$url2=convert_cyr_string ($url2, k, w);} #yandexfix
if (($engine == "G") or ($engine == "?"))
{
include $s_addurl."utf.php";
$url2=utf_decode ($url2);
}
eregi ($sw."([^&]*)", $url2."&", $url2);
$url2=strip_tags ($url2[1]);
$fullfile="[ <small><b><a href='".$ref."'>".$engine."</a></b></small> ] : <a href='".$pg."' title='[ ".date("d.m.Y H:i")." ]'>".$url2."</a><br>";
$ya= S_fr ($s_addurl."data/se.txt");
$ya= explode ("\n", $ya);
@array_unshift ($ya, $fullfile);
if (count ($ya)>$numse) unset ($ya[$numse]);
$output = @array_slice ($ya, 0, 10);
// SEARCH ENGINES
$fullfile=implode ("\n", $ya);
S_fw ($s_addurl."data/se.txt", $fullfile);
$fullfile=implode ("\n", $output);
// $fullfile=preg_replace ("/<small>(.*)</\small>/es", "", $fullfile);
S_fw ($s_addurl."data/se10.txt", $fullfile);
// SEARCH WORDS
loggg ($s_addurl."data/words.txt", $url2);
}
else
{
// REFFERER
loggg ($s_addurl."data/referers.txt", $url);
}
};
// REQUEST URL
loggg ($s_addurl."data/request.txt", (urldecode($pg)));
// NOT UNIQUE USER-AGENTS
// loggg ($s_addurl."data/agents.txt", $HTTP_USER_AGENT);
// в этом файле содержатся уникальные ip-шники за день и показания счетчика
$COUNT_FILE = $s_addurl."data/count.txt";
$message="";
// $ip - это тот самый айпишник, прокси учитываются
if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv ("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR");
else $ip = "UNKNOWN";
// $ip=$ip." ".$_SERVER['REMOTE_HOST'];
// вычисляем дату.
$datum=date("d.m.Y", time());
// открываем файл
$conts= S_fr ($COUNT_FILE);
// date|unique-1|today-2|total-3|search engines-4|other sites-5|homepage-6| text-7
// считываем кол-во хитов, уникумов и пр.
$counts= explode("|",$conts);
// полночь. ;)
// счетчик обнуляется.
if ($counts[0]!=$datum)
{
$m = $counts[0]."|".$counts[1]."|".$counts[2]."|".$counts[3]."|".$counts[4]."|".$counts[5]."|".$counts[6];
$counts[0]=$datum; $counts[1]=$counts[2]=$counts[4]=$counts[5]=$counts[6]=$counts[7]=0;
}
// уникумы
if (loggg ($s_addurl."data/ip.txt", $ip) == false)
{
// $counts[7].=$ip;
$counts[1]++;
// UNIQUE USER-AGENT
loggg ($s_addurl."data/agents.txt", $_SERVER['HTTP_USER_AGENT']);
// FROM SEARCH ENGINES
if(isset($engine)) { $counts[4]++; }
// from other sites
$counts[5]=$counts[5]+$req;
}
// увеличение хитов
$counts[2]++; $counts[3]++;
if (($pg=="/") or ($pg=="")) $counts[6]++; #home
// search engines
// ФОРМАТ СЧЕТЧИКА
// date|unique-1|today-2|total-3|search engines-4|other sites-5|homepage-6| text-7
// 1 - уникальных, 2 - хитов сегодня, 3 - хитов всего, 4 - с поисковиков сегодня, 5 - с других сайтов сегодня, 6 - на домашней странице сегодня
$out['counter']="<b>".$counts[3]."</b> / ".$counts[2]." / <b>".$counts[1]."</b> / ".$counts[5]." / ".$counts[4];
if ($showcounter=="yes") echo $out['counter'];
$content=$counts[0]."|".$counts[1]."|".$counts[2]."|".$counts[3]."|".$counts[4]."|".$counts[5]."|".$counts[6];
if ($content=="||||||") exit ();
S_fw ($COUNT_FILE, $content);
/// MIDNIGHT
if ($m!="")
{
if ($m!="||||||")
{
$fp = @fopen($s_addurl."data/days.txt", "a");
fwrite($fp, $m."\n");
fclose($fp);
}
S_fw ($s_addurl."data/ip.txt", "");
// по понедельникам - отчет
// include $s_addurl."report.php";
if ((date ("w")==1) and ($mailreport=="yes")) include $s_addurl."report.php";
}
}
}
?>