Новости | 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"; } } } ?>