View file dcmssocialguard/guard/inc/janitor.php

File size: 2.97Kb
<?php
$ps['janitor']=true;
if ($gsets['statistic']['state']==1) //запись статистики
{
list($msec, $sec) = explode(chr(32), microtime());
$speed=round(($sec + $msec) - $conf['headtime'], 3);

if ($speed>$gsets['server']['overload_time'])
{
$overload=1;
if ($gsets['server']['overload_state']==1)
	{
	$sys_ini->write('server','overload',($time+($gsets['server']['emergency_time']*60)));
	//включаем аварийный режим
	}
}
else
$overload=null;

mysql_query("INSERT INTO `guard_janitor` (`user`,`user_agent`,`ip`,`proxy_ip`,`referer`,`method`,`php_self`,`query_string`,`hack`,`overload`,`speed`,`time`) VALUES ('$user[id]','".my_esc($_SERVER['HTTP_USER_AGENT'])."','".my_esc($_SERVER['REMOTE_ADDR'])."','".my_esc($_SERVER['REMOTE_ADDR'])."','".my_esc(isset($_SERVER['HTTP_REFERER']))."','".my_esc($_SERVER['REQUEST_METHOD'])."','".my_esc($_SERVER['PHP_SELF'])."','".my_esc($_SERVER['QUERY_STRING'])."','$guard_hack','$overload','$speed','$time')");
} 
$sys_ini->updateFile(); // скидываем информацию в ini файл

if (empty($gsys['statistic']['last_clear']))
$sys_ini->write('statistic','last_clear',$time);

if ($gsets['statistic']['clear']==1 && ($gsys['server']['overload']<$time || empty($gsets['server']['overload_state']))) //автоматическая очистка статистики
{
	if ($gsys['statistic']['last_clear']<($time-($gsets['statistic']['clear_interval']*86400)))
	{
	if ($gsets['statistic']['clear_action']=='move') //перемещаем статистику в файл
		{
		
		function info($info)
			{
			if (empty($info))
				return 'пусто';
				else
				return $info;
			} //проверка
			
		$result=null;	
			
		$stats=mysql_query("SELECT * FROM `guard_janitor`");
		while($post=mysql_fetch_assoc($stats))
			{
			
			if (empty($post['user']))
				$ank='Неизвестный юзер';
				else
				{
				$uank=get_user($post['user']);
				$ank=$uank['nick'];
				}	
				
			$result.='
			# '.$post['id'].') '.$ank.' '.date('d.m.y',$post['time']).'
			Браузер/ОС: '.info($post['user_agent']).'
			IP: '.info($post['ip']).'
			Proxy IP: '.info($post['proxy_ip']).'
			Referer: '.info($post['referer']).'
			Адрес: '.$post['php_self'].'?'.$post['query_string'].' ('.$post['method'].') '.($post['hack']==1?'(попытка взлома)':null).'
			Генерация: '.$post['speed'].' сек '.($post['overload']==1?'(перегрузка сервера)':null);
			}
		$logs=@fopen(H.'guard/logs/'.date('d.m.y',$time).'.txt', 'w');
		@fwrite($logs, $result);
		@fclose($logs);
		@chmod(H.'guard/logs/'.date('d.m.y',$time).'.txt', 0777);
		mysql_query("DELETE FROM `guard_janitor`"); //удаляем старые данные
		$sys_ini->write('statistic','last_clear',$time); //последняя очистка
		}
		else //удаляем устаревшую статистику
		{
		mysql_query("DELETE FROM `guard_janitor`");
		}
	}
}

?>