Вход Регистрация
Файл: includes/counter.php
Строк: 159
<?php
error_reporting
(0);
$site=explode('/',$_SERVER['QUERY_STRING']);
$ip=$site[2];
$pkey='/'.$site[1];
$site=$site[0];

$name=explode('.',$_SERVER['HTTP_X_FORWARDED_HOST']);
$domain=strtolower($name[1]);

$counterfile='/home/kmx/www/sites/'.$domain.'/'.$site.'/counter.dat';
if     (
$site=='top')     $counterfile="/home/kmx/includes/sluzhebnye/top.counter";
elseif (
$site=='wap')     $counterfile="/home/kmx/includes/sluzhebnye/wap.counter";
elseif (
$site=='catalog'$counterfile="/home/kmx/includes/sluzhebnye/catalog.counter";
elseif (
$site=='forum')   $counterfile="/home/kmx/includes/sluzhebnye/forum.counter";
elseif (!
is_dir('/home/kmx/www/sites/'.$domain.'/'.$site))
    {
    
header("Content-type: image/vnd.wap.wbmp");
    
$im=ImageCreate(76,8);
    
$white=ImageColorAllocate($im255,255,255);
    
$black=ImageColorAllocate($im0,0,0);
    
imageString($im110'Site not found!'$black);
    
imagewbmp($im);
    
imageDestroy($im);
    }

$page=file('/home/kmx/www/sites/'.$domain.'/'.$site.'/index.wml');
for (
$i=0;$i<sizeof($page);$i++)
    {
    if (
substr(trim($page[$i]),0,12)!='<!-- cnt -->') continue;
    
$stra=explode('cnt.'.$domain.'.ru/'.$site,$page[$i]);
    
$stra=explode('"',$stra[1]);
    
$pkey_=$stra[0];
    break;
    }
unset(
$page);

$y2k mktime(23,59,59,date('n'),date('j'),date('Y'));
setcookie($site1$y2k);
$vizit=$HTTP_COOKIE_VARS[$site];

$hua="*".strtoupper($_SERVER['HTTP_USER_AGENT']);

$browser=$_SERVER['HTTP_USER_AGENT'];

$komp=false;

$komp=(trim($hua)=='*')
||
strpos($hua,'MOZILLA')
||
strpos($hua,'MSIE')
||
strpos($hua,'WINDOWS')
||
strpos($hua,'KLONDIKE')
#||strpos($hua,'OPERA')
||strpos($hua,'M3GATE')
||
strpos($hua,'EMULATOR')
||
strpos($hua,'TAGTAG')
||
strpos($hua,'ALPHACELL')
||
strpos($hua,'WAPSILON')
||
strpos($hua,'EZOS')
||
strpos($hua,'BILBO')
||
strpos($hua,'WINWAP')
||
strpos($hua,'MYSOCK')
||
strpos($hua,'BERCUT')
||
strpos($hua,'WAPPER')
||
strpos($hua,'TTPCOM')
||
strpos($hua,'UNKNOWN')
||
strpos($hua,'PORTALMMM')
||
strpos($hua,'EZZE')
||
strpos($hua,'JAVA')
||
strpos($hua,'JBROWSER')
||
strpos($hua,'SEND')
||
strpos($hua,'WINSIM')
||
strpos($hua,'WAPALIZER')
||
strpos($hua,'TELEPORT')
||
strpos($hua,'TSM')
||
strpos($hua,'TCL')
||
strpos($hua,'OPWV')
||
strpos($hua,'SKT');
if (
$komp$browser='-komp-';

if (!
file_exists($counterfile))
    {
    
# Создание файла данных счетчика
    
$f=@fopen($counterfile,"w+");
    
fseek($f,0,SEEK_SET); fwrite($f,str_repeat(' ',1500));
    
fseek($f,0,SEEK_SET); fwrite($f,substr('ID='.$n.'      ',0,9)."n");
    
fseek($f,10,SEEK_SET); fwrite($f,substr(''.$counter[5].str_repeat(' ',55),0,60)."n");
    
fseek($f,71,SEEK_SET); fwrite($f,substr(''.$counter[6].str_repeat(' ',25),0,20)."n");
    
fseek($f,92,SEEK_SET); fwrite($f,substr(''.$counter[7].str_repeat(' ',75),0,60)."n");
    
fseek($f,153,SEEK_SET); fwrite($f,substr(''.trim($counter[8]).str_repeat(' ',75),0,23)."n");
    
fseek($f,177,SEEK_SET); fwrite($f,date('d.m.Y H:i:s (----------)')."n");
    
fseek($f,210,SEEK_SET); fwrite($f,str_repeat('=',29)."n");
    
fseek($f,240,SEEK_SET); fwrite($f,substr('ВСЕГО: '.$counter[0].str_repeat(' ',9),0,16)."n");
    
fseek($f,257,SEEK_SET); fwrite($f,str_repeat('-',29)."n");
    
fseek($f,287,SEEK_SET); fwrite($f,"            ПО ЧАСАМ  n");
    
fseek($f,310,SEEK_SET); fwrite($f,"HOUR    HIT   HOST TIMESTAMP n");
    
fseek($f,1060,SEEK_SET); fwrite($f,str_repeat('-',29)."n");
    
fseek($f,1090,SEEK_SET); fwrite($f,"            ПО ДНЯМn");
    
fseek($f,1110,SEEK_SET); fwrite($f,"DAY     HIT   HOST TIMESTAMP n");
    
fclose($f);
    @
chmod($counterfile,0777);
    }

#========= РАБОТА С ФАЙЛОМ СЧЕТЧИКА ============================================
if ($f=@fopen($counterfile,"r+"))
    {
    
flock($f,2);
    
fseek($f,0,SEEK_SET);

    
// Время сейчас
    
$hour=date('G');
    
$day=date('w');
    
$timestamp=time();

    
// Время на счетчике
    
fseek($f,198,SEEK_SET); $timestamp_=fread($f,10);
    
$hour_=date('G',$timestamp_);
    
$day_=date('w',$timestamp_);

    
# Если большая пауза счета, то сбрасываем просроченые значения
    
if ($timestamp-$timestamp_>3600)
        {
        for (
$_hour=0;$_hour<24;$_hour++)
            {
            
fseek($f,359+$_hour*30,SEEK_SET);
            
$_timestamp=fread($f,10);
            
fseek($f,340+$_hour*30,SEEK_SET);
            if (
$timestamp-$_timestamp>86400fwrite($f,substr('0'.$_hour,-2)."        0      0 ----------n");
            }
        for (
$_day=0;$_day<7;$_day++)
            {
            
fseek($f,1159+$_day*30,SEEK_SET);
            
$_timestamp=fread($f,10);
            
fseek($f,1140+$_day*30,SEEK_SET);
            if (
$timestamp-$_timestamp>604800fwrite($f,$_day."         0      0 ----------n");
            }
        }

    
# Счетчик за час
    
if ($hour_==$hour)
        {
        
fseek($f,342+$hour*30,SEEK_SET);
        
$hit_hour=trim(fread($f,9));
        
$host_hour=trim(fread($f,7));
        }
    else
        {
        
$hit_hour=0;
        
$host_hour=0;
        }

    
# Счетчик за день
    
if ($day_==$day)
        {
        
fseek($f,1142+$day*30,SEEK_SET);
        
$hit_day=trim(fread($f,9));
        
$host_day=trim(fread($f,7));
        }
    else
        {
        
$hit_day=0;
        
$host_day=0;
        }

    
# Общее хитов
    
fseek($f,247,SEEK_SET);
    
$hit_all=trim(fread($f,9));

    if ((
$site=='top')||($site=='wap')||($site=='catalog')||($site=='forum')) $pkey=$pkey_;

    if (
$pkey==$pkey_)
        {
        
# Проверка уникальности
        
$unical=true;
        
$data_unical='';
        
$userinfo=trim(substr(substr($_SERVER['REMOTE_ADDR'].str_repeat(' ',15),0,15).' '.$browser,0,68));
        
fseek($f,1450,SEEK_SET);
        while (!
feof($f))
            {
            
$_timestamp=fread($f,10);
            
$_userinfo=trim(fread($f,70));
            if (
$timestamp-$_timestamp>3600) continue;
            
$data_unical.=$_timestamp.' '.substr($_userinfo.str_repeat(' ',70),0,68)."n";
            if ((
substr($userinfo,0,15)==substr($_userinfo,0,15))&&(substr($_userinfo,15,6)=='-komp-')) $unical=false;
            if (
$userinfo==$_userinfo$unical=false;
            if (
$vizit==1$unical=false;
            }
        if (
$unical$data_unical.=$timestamp.' '.substr($userinfo.str_repeat(' ',70),0,68)."n";
        
fseek($f,1350,SEEK_SET); fwrite($f,str_repeat('-',39)."n");
        
fseek($f,1390,SEEK_SET); fwrite($f,"       УНИКАЛЬНЫЕ  n");
        
fseek($f,1410,SEEK_SET); fwrite($f,"TIMESTAMP  IP              USER_AGENT  n");
        
fseek($f,1450,SEEK_SET); fwrite($f,$data_unical);

        
# Увеличение хостов
        
if ($unical)
            {
            
$host_day++;
            
$host_hour++;
            }

        
# Увеличение хитов
        
$hit_all++;
        
$hit_day++;
        
$hit_hour++;

        
# Сохраняем
        
fseek($f,340+$hour*30,SEEK_SET); fwrite($f,substr('0'.$hour,-2).' '.substr('         '.$hit_hour,-8).' '.substr('          '.$host_hour,-6).' '.time()."n");
        
fseek($f,1140+$day*30,SEEK_SET); fwrite($f,$day.' '.substr('          '.$hit_day,-9).' '.substr('          '.$host_day,-6).' '.time()."n");
        
fseek($f,247,SEEK_SET); fwrite($f,substr($hit_all.str_repeat(' ',9),0,9)."n");
        
fseek($f,177,SEEK_SET); fwrite($f,date('d.m.Y H:i:s (U)')."n");

        
ftruncate($f,1450+strlen($data_unical));
        }
    
flock($f,3);
    
fclose($f);
    }

#================================ РАБОТА С БАЗОЙ ===============================

define("DBName","kmx");
define("HostName","localhost");
define("UserName","kmx");
define("Password","kmx-hosting");

# Сбрасываем значения счетчиков в каталоге и рейтинге
if (($hit_day<5)&&($hit_day>0))
    {
    
$connectserv=@mysql_connect(HostNameUserNamePassword);
    
$selectDB=@mysql_select_db(DBName);
    
$connect_bd=(($connectserv!=0)&&($selectDB!=0));

    if (!
$connect_bd) die('Do not connect BD...');

    
$q=@mysql(DBName,"SELECT `day` FROM `counter` WHERE `domain` = '".addslashes($domain)."' AND `login` = '".addslashes($site)."' LIMIT 0, 1");
    
$data=@mysql_fetch_array($q);
    
$s=@mysql_num_rows($q);
    if ((
$data['day'] != date('j'))&&($s>0))
        {
                                            
# Ставим текущую дату
        
@mysql(DBName,"UPDATE `sites` SET     `dd` = '".date('j')."' ,".
                                               
# обнуляем счетчик за текущий день недели
                                            
"`d".date('w')."` = '0' ,".
                                            
# обновляем общий счетчик
                                            
"`da` = `d0` + `d1` + `d2` + `d3` + `d4` + `d5` + `d6`".
                                            
# если не та дата...
                                            
"WHERE `dd` != '".date('j')."'");

        @
mysql(DBName,"UPDATE `counter` SET `flag` = '0' ,
                            `hit` = '0' ,
                            `host` = '0' ,
                            `day` = '"
.date('j')."'
                            WHERE `day` != '"
.date('j')."'");
        
file('http://kmx.ru/stat_magsu.php');
        }
    if (
$s<1) @mysql(DBName,"INSERT INTO `counter` ( `domain`, `login` , `day`, `hit` , `host` , `host24`) VALUES ( '".addslashes($domain)."', '".addslashes($site)."' , '".date('j')."' , '$hit_day' , '$host_day' , '$host24');");
    @
mysql(DBName,"UPDATE `counter` SET `flag` = '1' WHERE `domain` = '".addslashes($domain)."' AND `login` = '".addslashes($site)."' LIMIT 1");
    }

$str=$host_day.'|'.$hit_day;

Header("Expires: Mon, 26 Jul 1988 05:00:00 GTM");
Header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
Header("Cache-Control: no-cache, must-relative");
Header("Pragma: no-cache");
header("Content-type: image/vnd.wap.wbmp");

$im=ImageCreate(strlen($str)*5+1,8);
$white=ImageColorAllocate($im255,255,255);
$black=ImageColorAllocate($im0,0,0);
imageString($im110$str$black);
imagewbmp($im);
imageDestroy($im);
print 
str_repeat("x00",2000);

if ((!
strpos($pkey,'.') && (substr($hit_day,-1)!='1') && (substr($hit_day,-1)!='6'))||(($site=='top')||($site=='wap')||($site=='catalog')||($site=='forum'))) exit;

$_key=rand(10000,99999).rand(10000,99999);
$npage='';
$page=file('/home/kmx/www/sites/'.$domain.'/'.$site.'/index.wml');
if (
trim($page[1])=='') exit;
for (
$i=0;$i<sizeof($page);$i++)
    {
    if (
substr(trim($page[$i]),0,12)=='<!-- cnt -->') {$page[$i]='<!-- cnt --><br/><a href="http://top.'.$domain.'.ru"><img src="http://cnt.'.$domain.'.ru/'.$site.'/'.$_key.'" alt="TOP-KMX.Ru"/></a>';}
    
$npage.=trim($page[$i])."n";
    }
$fp fopen ('/home/kmx/www/sites/'.$domain.'/'.$site.'/index.wml''w+');
fwrite ($fp$npage);
fclose ($fp);
?>
Онлайн: 0
Реклама