View file o5on.ru/countmini.php

File size: 8.43Kb
<?php
list($msec,$sec)=explode(chr(32),microtime());$HeadTime=$sec+$msec;
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
include "config.php";
include './inc/config.inc.php';
include './inc/functions.inc.php';
connect_to_db();

//проверка  ввода id
if (empty($_GET['uid'])){
$img = @imageCreateFromGIF("./img/errors.gif");
Header("Content-type: image/gif");
ImageGIF($img);
ImageDestroy($img);
exit;
}
$uid = dig($_GET['uid']);
$uid = (int)$uid;

// проверка существования учетной записи
$result = mysql_query("SELECT `link`,`cat_id` FROM `users` WHERE `uid`='".$uid."';");
$row=mysql_fetch_row($result);
if (empty($row)){
$img = @imageCreateFromGIF("./img/errors.gif");
Header("Content-type: image/gif");
ImageGIF($img);
ImageDestroy($img);
exit;
}
$cat_id = $row["cat_id"];

### Обновление даты пользование топом
$time_stamp = time ();
$day_time	= 24*60*60;
mysql_query("
	UPDATE `users`
	SET `date` = $time_stamp
	WHERE (`date` + $day_time) < $time_stamp AND `uid` = $uid
	LIMIT 1;
");

// получаем ip посетителя
$ip = $_SERVER['REMOTE_ADDR'];
$ua = $_SERVER['HTTP_USER_AGENT'];

$browser  = explode("/",$ua);
$user_browser = (string)$browser[0];

// =================== Определение тела и учет в статистике
include "mod_telinfo.php";
// =================== Определение оператора и учет в статистике
include "mod_operators.php";

// текущий час, день недели и дата
$hour = date("H");
$day = date("d");
$today = date("Ymd");
// ------------------------- обнулялка хостов ----------------------------
// извлекаем время последней записи в счетчик хостов
$result = mysql_query("SELECT time FROM hits_time WHERE uid=$uid");
$row=mysql_fetch_row($result);
// если время отсутствует, запоминаем
if(empty($row)){
        @mysql_query("INSERT INTO hits_time VALUES ($uid,$today)");
        $reset_time = $today;
} else $reset_time = $row[0];
// удаляем записи ip старее суток
if($today != $reset_time){
     @mysql_query("DELETE FROM hits_ip WHERE uid=$uid");
     @mysql_query("UPDATE hits_time SET time = $today WHERE uid=$uid");
}
//------------------------------ часовая статистика -------------------------
// данные за текущий час
$result = mysql_query("SELECT count,host FROM count_24 WHERE hour=$hour AND date=$today AND uid=$uid");
$row=mysql_fetch_row($result);
// поверка наличия записи в базе
if (empty($row))
{
	$res = mysql_query("SELECT count(*) FROM count_24 WHERE uid=$uid");
	$data = mysql_fetch_row($res);
	$count_rows = $data[0];
	if ($count_rows >= 24) @mysql_query("DELETE FROM count_24 WHERE uid=$uid ORDER BY id ASC LIMIT 1;");
	@mysql_query("INSERT INTO count_24 VALUES ('',$uid,$today,$hour,0,0);");
	$hour_count = 0;
	$hour_host = 0;
}else
	{
		$hour_count = $row[0];
		$hour_host = $row[1];
	}
$hour_count++;

// ---------------------------- посещения за месяц --------------------
$today = date("Ym");
// данные за текущий месяц
$result = mysql_query("SELECT count,host FROM months WHERE date=$today AND uid=$uid");
$row=mysql_fetch_row($result);
// поверка наличия записи в базе
if (empty($row))
{
	@mysql_query("INSERT INTO months VALUES ('',$uid,$today,0,0);");
	$this_month_count = 0;
	$this_month_host = 0;
}else{
		$this_month_count = $row[0];
		$this_month_host = $row[1];
	}
$this_month_count++;

//-------------------------- недельная статистика----------------
$week_day = date("w");
$today = date("Ymd");
// получаем дату обнуления недельной статистики
$result = mysql_query("SELECT next_mon FROM weeks WHERE uid=$uid ORDER BY id ASC LIMIT 1");
$row=mysql_fetch_row($result);
if (empty($row))
{
	// расчитываем дату обнуления
	$nextMonday=date("Ymd",mktime(0,0,0,date("m"),date("d")+32));

}
else $nextMonday = $row[0];
// если сегодня дата обнуления, обнуляем недельную статистику, и расчитываем след дату обнуления
if ($today >= $nextMonday)
{
	// расчитываем след дату обнуления
	$nextMonday=date("Ymd",mktime(0,0,0,date("m"),date("d")+32));
    // обнуляем посещения за прошедшую неделю
    @mysql_query("DELETE FROM `weeks` WHERE uid = $uid");
    @mysql_query("DELETE FROM `top_operators_stat` WHERE uid = $uid");

    ### Удаление неактивных пользователей
    $time_stamp = time ();
    $week_time	= 7*24*60*60;
    $sql_result = mysql_query("
    	SELECT `uid` FROM `users`
    	WHERE ($time_stamp - `users`.`date`) > $week_time
    ");
    while ($result = mysql_fetch_assoc($sql_result))
    {
    	$del_uid = $result['uid'];
    	@mysql_query("DELETE FROM `users` WHERE uid = $del_uid");
    	@mysql_query("DELETE FROM `count_24` WHERE uid = $del_uid");
    	@mysql_query("DELETE FROM `hits_ip` WHERE uid = $del_uid");
    	@mysql_query("DELETE FROM `hits_time` WHERE uid = $del_uid");
    	@mysql_query("DELETE FROM `months` WHERE uid = $del_uid");
    	@mysql_query("DELETE FROM `online_ip` WHERE uid = $del_uid");
    	@mysql_query("DELETE FROM `top_operators_stat` WHERE uid = $del_uid");
    	@mysql_query("DELETE FROM `weeks` WHERE uid = $del_uid");
    }
}
// получаем данные за текущий день недели
$result = mysql_query("SELECT cat_id FROM users WHERE uid=$uid");
$row=mysql_fetch_row($result);
if (empty($row)) exit;
$cat_id = $row[0];
$result = mysql_query("SELECT count,host FROM weeks WHERE date=$today AND day_week=$week_day AND uid=$uid LIMIT 1");
$row=mysql_fetch_row($result);
if (empty($row))
{
	// расчитываем дату обнуления
	$nextMonday=date("Ymd",mktime(0,0,0,date("m"),date("d")+32));
    @mysql_query("INSERT INTO weeks VALUES ('',$uid,$nextMonday,$today,$week_day,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,$cat_id)");
    $week_day_count = 0;
    $week_day_host = 0;
} else{
		$week_day_count = $row[0];
		$week_day_host = $row[1];
	}
$week_day_count++;

// ======================================== хосты (оптимиз код) ===================================
// чтение текущего ip хита из базы
$result = @mysql_query("SELECT `ip` FROM `hits_ip` WHERE (`ip`='".$ip."' AND `ua`='".$ua."') AND `uid`='".$uid."';");
$row = @mysql_fetch_row($result);
// если адрес отсутствует, плюсуем хост
if(empty($row))
{
    // защита от накрутки
    $result = mysql_query("SELECT `ip` FROM `hits_ip` WHERE `uid`=$uid ORDER BY `time` DESC  LIMIT 1;");
	$row = mysql_fetch_array($result);
	if (empty($row) || ($row['ip'] != $ip))
	{
		$hour_host++;
		$week_day_host++;
		$this_month_host++;
		mysql_query("INSERT INTO `hits_ip` VALUES ($uid,'$ip','$ua',".time().")");
	}
}
// сохранение посещения
@mysql_query("UPDATE count_24 SET count=$hour_count,host=$hour_host WHERE hour=$hour AND date=$today AND uid=$uid");
@mysql_query("UPDATE weeks SET count=$week_day_count,host=$week_day_host WHERE date=$today AND day_week=$week_day AND uid=$uid LIMIT 1");
$today = date("Ym");
@mysql_query("UPDATE months SET count=$this_month_count,host=$this_month_host WHERE date=$today AND uid=$uid");


// вывод информации
$result = mysql_query("SELECT `type` FROM `users` WHERE `uid`=".$uid."");
$type=mysql_fetch_row($result);

$image=$type[0];

$image = chunk_split ($image, 1, '.');
$image = explode(".",$image);
$image=$image[1];
if(empty($image)) $image = 1;


if($image>=1 && $image<=7){
$img = @imageCreateFromGIF("./img/".$image."m.gif");
}else{
$img = @imageCreateFromGIF("./img/errors.gif");
}

Header("Content-type: image/gif");
ImageGIF($img);
ImageDestroy($img);
$reza = mysql_query ("select * from gener");
if (mysql_affected_rows()==0){
$ins_str = "Insert into gener set time='0'";
               	if (mysql_query ($ins_str)) {
                $ttttt=0;

                } else {
                    $msg = " ".mysql_error()." ";

                }

			}
else{$raw = mysql_fetch_array ($reza);
$ttttt = $raw["time"];
}

list($msec,$sec)=explode(chr(32),microtime());
$sekunda= round(($sec+$msec)-$HeadTime,4);
$sekunda = round(($ttttt+$sekunda)/2,4);
mysql_query ("Update gener set time='".$sekunda."'");

?>