<?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()."';");
?>