Файл: o5on.ru/countmini.php
Строк: 98
<?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."'");
?>