Файл: wapxl.ru/top/c.php
Строк: 160
<?php
// не забыть менять путь перед загрузкой на сервер
require'../shaxty.php';
//include_once '/var/www/shaxty/data/www/wapxl.ru/shaxty.php';
// Определяем изображение
$imgs = func::checkin(base64_decode($_GET['img']));
$im = str_replace("-","",$imgs);
$img = imagecreatefrompng("counts/".$im.".png");
$imgs = explode("-",$imgs);
$razmer = $imgs[0]; // размер изображения
$cvet = $imgs[1]; // цвет изображения
$tip = $imgs[2]; // тип изображения 0 - не залитое, 1 - залитое
if($tip==0){
if($cvet==1){
$color = imagecolorallocate($img, 239,208,23);
}else if($cvet==2){
$color = imagecolorallocate($img, 112,112,112);
}else if($cvet==3){
$color = imagecolorallocate($img, 12,223,12);
}else if($cvet==4){
$color = imagecolorallocate($img, 223,47,12);
}else if($cvet==5){
$color = imagecolorallocate($img, 0,0,0);
}else if($cvet==6){
$color = imagecolorallocate($img, 218,11,231);
}
} else if($tip==1){
$color = imagecolorallocate($img, 255,255,255);
}else if($tip==2){
$color = imagecolorallocate($img, 0,0,0);
}
// Определяем откуда юзер
$url = func::checkin($_GET['u']);
// Удаляем все лишнее из адресв
$url = str_replace("http://","",$url);
$url = str_replace("www.","",$url);
$url = str_replace("https://","",$url);
// Удаляем все, что после ? знака
$url0 = explode("?",$url);
// Разбиваем адрес на /
$url = explode("/",$url0[0]);
$urlstr = str_replace("".$url[0]."/","",$url0[0]);
// Если есть адрес сайта
if(!empty($url[0])){
$url[0] = isset ($url[0]) ? $url[0] : false;
// Проверяем на наличие сайта в каталоге
$site = core:: $db -> queryFetch("SELECT * FROM `sites` WHERE `url`=? LIMIT 1;", array($url[0]));
if(isset($site['id'])){
// Сайт есть в каталоге, начинаем учет статистики посещаемости....
// Определяем referrer
$referrer = func::checkin($_GET['ref']);
// Если реф есть, работаем с ним
if(!empty($referrer)){
// Удаляем все лишнее из referrer
$referrer = str_replace("http://","",$referrer);
$referrer = str_replace("www.","",$referrer);
$referrer = str_replace("https://","",$referrer);
// Удазяем все, что после ? знака referrer
$referrer0 = explode("?",$referrer);
$referrer = explode("/",$referrer0[0]);
$referrerstr = str_replace("".$referrer[0]."/","",$referrer0[0]);
// если в реф попал адрес данного сайта
if($referrer[0]==$url[0]){
$referrer[0] = 0; // Адрес сайта
$referrerstr = 0; // страница сайта
}
// если рефа нет, определяем его как Закладки (0)
}else{
$referrer[0] = 0; // Адрес сайта
$referrerstr = 0; // страница сайта
}
$days_of_months = date("t",core::$realtime); // Количество дней в месяце
$week_day = date("l",core::$realtime); // Полное наименование дня недели
$today = date("Y-m-d",core::$realtime); // определяем день
$hour = date("Y-m-d H:00",(core::$realtime+3600)); // определяем день
function escape_win ($path) {
$path = strtoupper ($path);
return strtr($path, array("%U0430"=>"а", "%U0431"=>"б", "%U0432"=>"в",
"%U0433"=>"г", "%U0434"=>"д", "%U0435"=>"е", "%U0451"=>"ё", "%U0436"=>"ж", "%U0437"=>"з", "%U0438"=>"и",
"%U0439"=>"й", "%U043A"=>"к", "%U043B"=>"л", "%U043C"=>"м", "%U043D"=>"н", "%U043E"=>"о", "%U043F"=>"п",
"%U0440"=>"р", "%U0441"=>"с", "%U0442"=>"т", "%U0443"=>"у", "%U0444"=>"ф", "%U0445"=>"х", "%U0446"=>"ц",
"%U0447"=>"ч", "%U0448"=>"ш", "%U0449"=>"щ", "%U044A"=>"ъ", "%U044B"=>"ы", "%U044C"=>"ь", "%U044D"=>"э",
"%U044E"=>"ю", "%U044F"=>"я", "%U0410"=>"А", "%U0411"=>"Б", "%U0412"=>"В", "%U0413"=>"Г", "%U0414"=>"Д",
"%U0415"=>"Е", "%U0401"=>"Ё", "%U0416"=>"Ж", "%U0417"=>"З", "%U0418"=>"И", "%U0419"=>"Й", "%U041A"=>"К",
"%U041B"=>"Л", "%U041C"=>"М", "%U041D"=>"Н", "%U041E"=>"О", "%U041F"=>"П", "%U0420"=>"Р", "%U0421"=>"С",
"%U0422"=>"Т", "%U0423"=>"У", "%U0424"=>"Ф", "%U0425"=>"Х", "%U0426"=>"Ц", "%U0427"=>"Ч", "%U0428"=>"Ш",
"%U0429"=>"Щ", "%U042A"=>"Ъ", "%U042B"=>"Ы", "%U042C"=>"Ь", "%U042D"=>"Э", "%U042E"=>"Ю", "%U042F"=>"Я"));
}
$head = func::checkin(escape_win(func::win_to_utf($_GET['h']))); // Определяем Заголовок страницы (title)
$screen = func::checkin($_GET['s']); // Определяем разрешение экрана
// Получаем количество хостов и хитов на сегодня
$top_count = core:: $db -> queryFetch("SELECT * FROM `top_count` WHERE `url`=? and `date`=? LIMIT 1;", array($url[0],$today));
// Проверяем наличие IP Пользователя в базе на сегодня
$top_ip = core:: $db -> queryFetch("SELECT * FROM `top_ip` WHERE `url`=? and `date`=? and `ip`=? LIMIT 1;", array($url[0],$today,core::$ipp));
if(!isset($top_ip['id'])){ // IP нет в базе
require 'func.php'; // подключаем вспомогательные функции
// Определение оператора и страны по IP
$operator = core:: $db -> queryFetch("SELECT * FROM `operator` WHERE `ip1`<=? and `ip2`>=?;", array(core::$ipp,core::$ipp));
if(!isset($operator['id'])){
$operator['country'] = 0;
$operator['operator'] = 0;
}
$top_count['host']++;
$sql .= '`hit`=`hit`+1, `host`=`host`+1'; // плюсуем хост и хит
$dbi = core::$db -> prepare("INSERT INTO `top_ip` SET `url`=?, `hit`=?, `ip`=?, `browser`=?, `os`=?, `robot`=?, `screen`=?, `time`=?, `timeend`=?, `date`=?, `referer`=?, `refstr`=?, `instr`=?, `outstr`=?, `operator`=?, `country`=?");
$dbi -> execute($url[0],1,core::$ipp,browser(),os(),robot(),$screen,core::$realtime,core::$realtime,$today,$referrer[0],$referrerstr,$urlstr,$urlstr,$operator['operator'],$operator['country']);
}else{ // IP есть в базе
if($top_ip['timeend']>0 and $top_ip['timeend']<(core::$realtime-60*15))$vozvrat = "`vozvrat`='".(core::$realtime-$top_ip['timeend'])."',"; // если пользователь вернулся на сайт более чем через 15 минут, указываем время через которое он вернулся... Стата будет выводится суммарно по промежуткам времени до 31 дня...
$dbi = core::$db -> prepare("UPDATE `top_ip` SET ".$vozvrat." `hit`=`hit`+1, `timeend`=?, `outstr`=? WHERE `url`=? and `date`=? and `ip`=? LIMIT 1");
$dbi -> execute(core::$realtime,$urlstr,$url[0],$today,core::$ipp);
$top_count['hit']++;
$sql .= '`hit`=`hit`+1'; // плюсуем только хит
}
if($urlstr!=''){
// проверяем есть ли страница в базе
$top_pages = core:: $db -> queryFetch("SELECT * FROM `top_pages` WHERE `url`=? and `date`=? and `page`=? LIMIT 1;", array($url[0],$today,$urlstr));
if(!isset($top_pages['id'])){
// записываем посещенную страницу и ее заголовок
$dbi = core::$db -> prepare("INSERT INTO `top_pages` SET `url`=?, `date`=?, `title`=?, `hit`=?, `page`=?");
$dbi -> execute($url[0],$today,$head,1,$urlstr);
}else{
// прибовляем просмотры
$dbi = core::$db -> prepare("UPDATE `top_pages` SET `hit`=`hit`+1, `title`=? WHERE `url`=? and `date`=? and `page`=? LIMIT 1");
$dbi -> execute($head,$url[0],$today,$urlstr);
}
}
// Подсчитываем количество онлайн посетителей за последние 10 минут
$top_online = core:: $db -> querySingle("select count(*) as num from top_ip WHERE `timeend` >= '".(core::$realtime-600)."';");
// расчитываем максимальный онлайн за текущий день
if($top_online>$top_count['online']) $top_count_online = $top_online;
else $top_count_online = $top_count['online'];
// Записываем количество хостов и хитов за текущий день
if(!isset($top_count['id'])){
$dbi = core::$db -> prepare("INSERT INTO `top_count` SET `url`=?, `hit`=?, `host`=?, `date`=?, `online`=?");
$dbi -> execute($url[0],1,1,$today,$top_count_online);
}else{
$dbi = core::$db -> prepare("UPDATE `top_count` SET ".$sql." , `online`=? WHERE `url`=? and `date`=? LIMIT 1");
$dbi -> execute($top_count_online,$url[0],$today);
}
// Получаем количество хостов и хитов за текущий Час
$top_count_hour = core:: $db -> queryFetch("SELECT * FROM `top_count_hour` WHERE `url`=? and `date`=? and `hour`=? LIMIT 1;", array($url[0],$today,$hour));
// расчитываем максимальный онлайн за текущий час
if($top_online>$top_count_hour['online']) $top_count_houronline = $top_online;
else $top_count_houronline = $top_count_hour['online'];
// Записываем количество хостов и хитов за текущий Час $hour
if(!isset($top_count_hour['id'])){
$dbi = core::$db -> prepare("INSERT INTO `top_count_hour` SET `url`=?, ".$sql.", `date`=?, `hour`=?, `online`=?");
$dbi -> execute($url[0],$today,$hour,$top_count_houronline);
}else{
$dbi = core::$db -> prepare("UPDATE `top_count_hour` SET ".$sql." , `online`=? WHERE `url`=? and `date`=? and `hour`=? LIMIT 1");
$dbi -> execute($top_count_houronline,$url[0],$today,$hour);
}
// получаем кол во посетителей сегодня с учетом текущего посещения
$count_host_day = $top_count['host'];
$count_hit_day = $top_count['hit'];
if($razmer==1){
$x2 = (ImageSX($img) - 5*strlen("$count_host_day")-3);
$x3 = (ImageSX($img) - 5*strlen("$count_hit_day")-3);
$y = 3;
imageString($img, 1, 4, 4,"$count_host_day", $color);
imageString($img, 1, 4, 14,"$count_hit_day", $color);
}else if($razmer==2){
$x2 = (ImageSX($img) - 5*strlen("$count_host_day")-3);
$y = 3;
imageString($img, 1, 4, 4,"$count_host_day", $color);
}else if($razmer==4){
$x2 = (ImageSX($img) - 5*strlen("$count_host_day")-3);
$x3 = (ImageSX($img) - 5*strlen("$count_hit_day")-3);
$y = 3;
imageString($img, 1, $x2-50, $y+18,"$count_host_day", $color);
imageString($img, 1, $x3-10, $y+18,"$count_hit_day", $color);
}else if($razmer==5){
$x2 = (ImageSX($img) - strlen("$count_host_day"));
$x3 = (ImageSX($img) - 5*strlen("$count_hit_day")-3);
$y = 3;
imageString($img, 1, $x2-64, $y+13,"$count_host_day", $color);
imageString($img, 1, $x3, $y+13,"$count_hit_day", $color);
}
// Если сайта нет в каталоге
}
} // адрес сайта
header("Content-type: ".image_type_to_mime_type(IMAGETYPE_PNG));
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-relative");
imagepng($img);
imagedestroy($img);
die();
?>