Файл: etc/counter.php
Строк: 42
<?
 
        define('HOME',''.$_SERVER['DOCUMENT_ROOT'].'');
        include HOME.'/__core/__PDO_connect.php';
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) and preg_match('|^d{1,3}.d{1,3}.d{1,3}.d{1,3}$|',$_SERVER['HTTP_X_FORWARDED_FOR'])){
        $ip = trim(htmlspecialchars($_SERVER['HTTP_X_FORWARDED_FOR']));
        }elseif(isset($_SERVER['HTTP_CLIENT_IP']) and preg_match('|^d{1,3}.d{1,3}.d{1,3}.d{1,3}$|',$_SERVER['HTTP_CLIENT_IP'])){
        $ip = trim(htmlspecialchars($_SERVER['HTTP_CLIENT_IP']));
        }elseif(isset($_SERVER['REMOTE_ADDR']) and preg_match('|^d{1,3}.d{1,3}.d{1,3}.d{1,3}$|',$_SERVER['REMOTE_ADDR'])){
        $ip = trim(htmlspecialchars($_SERVER['REMOTE_ADDR']));
        }else{
        $ip = 'Скрыт';
        }
        if (isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA'])){
        $ua = trim(htmlspecialchars($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']));
        }elseif (isset($_SERVER['HTTP_USER_AGENT'])){
        $ua = trim(htmlspecialchars($_SERVER['HTTP_USER_AGENT']));
        }else{
        $ua = 'Скрыт';
        }
        $ua = strtok($ua, '/');
        $ua = strtok($ua, ' ');
        if (preg_match('/opera min/i', $ua)) $browser = 'Opera Mini';
        else if (preg_match('/Chrome/i', $ua))$browser = 'Chrome';
        else if (preg_match('/Opera/i', $ua)) $browser = 'Opera';
        else if (preg_match('/MSIE/i', $ua)) $browser = 'IE';
        else if (preg_match('/Mozilla/i', $ua)) $browser = 'Mozilla';
        else if (preg_match('/ucweb/i', $ua)) $browser = 'UCWeb';
        else $browser = 'Неизвестно';
        $site = $db -> query
                            ("
                             SELECT `id`,`status`,`imageBig`,`imageSmall`,`userID` FROM `site` WHERE `id` = '".abs(intval($_GET['id']))."'  LIMIT 1
                            ");
        if($site -> rowCount() == 1)
          {
            $s = $site -> fetch(PDO::FETCH_ASSOC);
            if($s['status'] == 1)
            {
            $operator = $db -> query
                            ("
                             SELECT `on` FROM `ip` WHERE INET_ATON('".$ip."') BETWEEN `min` AND `max`
                            ");
                if($operator -> rowCount() > 0)
                  {
                     $o = $operator -> fetch(PDO::FETCH_ASSOC);
                     $operator_note = $o['on'];
                  }
                    else
                  {                    $operator_note = 1000;
                  }
            $ip_isset = $db -> query
                            ("
                             SELECT `id` FROM `note_host` WHERE `siteID` = '".$s['id']."' AND `ip` = '".$ip."' and `date`='".date("Y-m-d",time())."'
                            ");
            if (($ip_isset -> rowCount()) == 0)
              {
                $stmt = $db->prepare("INSERT INTO `note_host` (`id`,`siteID`,`ip`,`browser`,`operator`,`date`,`time`) VALUES (?,?,?,?,?,?,?)");
                $stmt -> execute(array('',''.$s['id'].'',''.$ip.'',''.$browser.'',''.$operator_note.'',''.date("Y-m-d",time()).'',''.time().''));
                $site_h = $db->exec("UPDATE `site` SET  `allHost` = (`allHost` + '1') ,`allHits` = (`allHits` + '1') WHERE `id` = '".$s['id']."' LIMIT 1");
                $site_statistic_h = $db->exec("UPDATE `site_statistic` SET  `host` = (`host` + '1'),  `hits` = (`hits` + '1')
                WHERE `siteID` = '".$s['id']."' and `date` = '".date("Y-m-d",time())."' LIMIT 1");
              }
                else
              {
                $site_h = $db->exec("UPDATE `site` SET  `allHits` = (`allHits` + '1') WHERE `id` = '".$s['id']."' LIMIT 1");
                $site_statistic_h = $db->exec("UPDATE `site_statistic` SET   `hits` = (`hits` + '1')
                WHERE `siteID` = '".$s['id']."' and `date` = '".date("Y-m-d",time())."' LIMIT 1");
              }
            }
            header("Content-type: image/png");
            if($_GET['i'] == 'b')
            {
                $ssite = $db -> query
                            ("
                             SELECT `hits`,`host` FROM `site_statistic` WHERE  `siteID` = '".abs(intval($_GET['id']))."' and `date`='".date("Y-m-d",time())."' LIMIT 1
                            ");
                $ss = $ssite -> fetch(PDO::FETCH_ASSOC);
                $siteTop100 = $db -> query
                            ("
                             SELECT `siteID` FROM `site_top100` WHERE  `siteID` = '".abs(intval($_GET['id']))."' LIMIT 1
                            ");
                if($siteTop100 -> rowCount() == 1)
                {                $img = 'top100/'.$s['imageBig'].'.png';
                }
                  else
                {
                $img = 'b/'.$s['imageBig'].'.png';
                }
                $image = imagecreatefrompng($img);
                $hits = 69 - (strlen($ss['hits']) * 5);
                $hosts = 69 - (strlen($ss['host']) * 5);
                $color = imagecolorallocate($image, 255, 255, 255);
                ImageString($image, 1, $hits, 13, $ss['hits'], $color);
                ImageString($image, 1, $hosts, 4, $ss['host'], $color);
            }
              else
            if($_GET['i'] == 's')
            {
                $img = 's/'.$s['imageSmall'].'.png';
                $image = imagecreatefrompng($img);
            }
            imagepng($image);
            imageDestroy($image);
          }
?>