Просмотр файла o5on.ru/global_count.php

Размер файла: 7.65Kb
<?php

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

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

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

// =================== Определение тела и учет в статистике
$uid = 1;
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`='1';");
$row=mysql_fetch_row($result);
// если время отсутствует, запоминаем
if(empty($row)){
        @mysql_query("INSERT INTO `hits_time` VALUES ('1','".$today."');");
        $reset_time = $today;
} else $reset_time = $row[0];
// удаляем записи ip старее суток
if($today != $reset_time){
     @mysql_query("DELETE FROM `hits_ip` WHERE `uid`='1';");
     @mysql_query("UPDATE `hits_time` SET `time` = '".$today."' WHERE `uid`='1';");
}
//------------------------------ часовая статистика -------------------------
// данные за текущий час
$result = mysql_query("SELECT `count`,`host` FROM `count_24` WHERE `hour`='".$hour."' AND `date`='".$today."' AND `uid`='1';");
$row=mysql_fetch_row($result);
// поверка наличия записи в базе
if (empty($row))
{
	$res = mysql_query("SELECT count(*) FROM `count_24` WHERE `uid`='1';");
	$data = mysql_fetch_row($res);
	$count_rows = $data[0];
	if ($count_rows >= 24) @mysql_query("DELETE FROM `count_24` WHERE `uid`='1' ORDER BY `id` ASC LIMIT 1;");
	@mysql_query("INSERT INTO `count_24` VALUES ('','1','".$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`='1';");
$row=mysql_fetch_row($result);
// поверка наличия записи в базе
if (empty($row))
{
	@mysql_query("INSERT INTO `months` VALUES ('','1','".$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`='1' 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 `next_mon` = '".$today."';");
    @mysql_query("DELETE FROM `top_operators_stat` WHERE `next_mon` = '".$today."';");

    ### Удаление неактивных пользователей
    $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`='1';");
$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`='1' 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 ('','1','".$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`='1';");
$row=mysql_fetch_row($result);
// если адрес отсутствует, плюсуем хост
if(empty($row))
{
    // защита от накрутки
    $result = mysql_query("SELECT `ip` FROM `hits_ip` WHERE `uid`='1' 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 ('1','".$ip."','".$ua."','".time()."');");
	}
}
// сохранение посещения
@mysql_query("UPDATE `count_24` SET `count`='".$hour_count."',`host`='".$hour_host."' WHERE `hour`='".$hour."' AND `date`='".$today."' AND `uid`='1';");
@mysql_query("UPDATE `weeks` SET `count`='".$week_day_count."',`host`='".$week_day_host."' WHERE `date`='".$today."' AND `day_week`='".$week_day."' AND `uid`='1' LIMIT 1;");
$today = date("Ym");
@mysql_query("UPDATE `months` SET `count`='".$this_month_count."',`host`='".$this_month_host."' WHERE `date`='".$today."' AND `uid`='1';");

// за сегодня
$count_today = $week_day_count;
$host_today = $week_day_host;

// ------------------------------- онлайн  -----------------------------
$today = date("Ymd");
$now=date("ymdHi");
$result = mysql_query("SELECT `ip` FROM `online_ip` WHERE `uid`='1' AND `ip`='".$ip."' LIMIT 1;");
$row=mysql_fetch_row($result);
if(empty($row[0])) @mysql_query("INSERT INTO `online_ip` (`uid`, `ip`, `time`, `browser` ) VALUES ('1', '".$ip."', '".(time()+60*15)."', '".$user_browser."');");
// удаляем записи ip старее online_time минут
@mysql_query("DELETE FROM `online_ip` WHERE `uid`='1' AND `time` <= '".time()."';");

?>