Вход Регистрация
Файл: tracking/index.php
Строк: 178
<?php
require '../inc/sys.php';

if (isset (
$_GET['archive']))
{
$guard->logs ();
$doc->msg ('Статистика перемещена в файловый архив''/guard/');
}

function 
urlName ($url)
    {
    if (
preg_match ('/$adm_panel//i'$url))
        return 
'админ-панель';
        elseif (
preg_match ('//chat//i'$url))
        return 
'чат';
        elseif (
preg_match ('//forum//i'$url))
        return 
'форум';
        elseif (
preg_match ('//obmen//i'$url))
        return 
'обменник';
        elseif (
preg_match ('//loads//i'$url))
        return 
'загрузки';
        elseif (
preg_match ('//votes//i'$url))
        return 
'голосования';
        elseif (
preg_match ('//guest//i'$url))
        return 
'гостевая';
        elseif (
preg_match ('/info.php/i'$url))
        return 
'анкета';
        elseif (
preg_match ('//foto//i'$url))
        return 
'фотоальбомы';
        elseif (
preg_match ('//lib//i'$url))
        return 
'библиотека';
        elseif (
preg_match ('//news//i'$url))
        return 
'новости';
        elseif (
preg_match ('/index.php/i'$url))
        return 
'главная';
        elseif (
preg_match ('/aut.php/i'$url))
        return 
'вход';
        elseif (
preg_match ('/reg.php/i'$url))
        return 
'регистрация';
        elseif (
preg_match ('/mail.php/i'$url))
        return 
'почта';
        elseif (
preg_match ('/konts.php/i'$url))
        return 
'контакты';
        elseif (
preg_match ('/users.php/i'$url))
        return 
'пользователи';
        elseif (
preg_match ('/online.php/i'$url))
        return 
'пользователи on-line';
        else
        return 
'название не определено';
    }

if (!isset (
$ps['filters']))
    
$ps['filters'] = null;

if (isset (
$_GET['filters_status']))
{
if (
$_GET['filters_status'] == 1)
    
$ps['filters_dossier_status'] = 1;
    else
    
$ps['filters_dossier_status'] = 0;
}


function 
is_filt ($name)
{
global 
$ps;
if (!empty (
$ps['filters'][$name]))
    return 
true;
    else
    return 
false;
}

/* Так фича для меня :D */
function filter ($arg)
{
global 
$ps$_GET$filt;
if (isset (
$_GET[$arg]))
    
$ps['filters'][$arg] = $filt->in ($_GET[$arg]);
if (isset (
$ps['filters'][$arg]))
    return 
$filt->in ($ps['filters'][$arg]);
}

/* Проверка на нулость */
function not_null ($var)
{
if (empty (
$var))
    return 
'пусто';
    else
    return 
$var;
}

/* Очистка слежения */
if ($sys->confirm ('clean','/guard/'))
{
mysql_query ("DELETE FROM `guard_tracking`");
}

/* Обнуление фильтров */
if (isset ($_GET['refresh']))
{
$ps['filters'] = null;
$filters null;
$_GET null;
}

/* Вывод фильтров */
if (empty ($ps['filters_dossier_status']))
{
echo 
"<a href='?filters_status=1'>".$doc->icon ('setting')." Включить фильтры</a><br />";
$ps['filters'] = null;
}
else
{

if (isset (
$_GET['select']))
{
echo 
'<div class="post">'.$doc->icon ('arrow_right').' Выбрать ';
if (
$_GET['select'] == 'browsers')
    {
    echo 
'браузер: ';
    
$doc->lineLink ('Opera','?browser=opera'', ');
    
$doc->lineLink ('FireFox','?browser=firefox'', ');
    
$doc->lineLink ('Internet Explorer','?browser=explorer'', ');
    
$doc->lineLink ('Chrome','?browser=chrome'', ');
    
$doc->lineLink ('Opera Mini','?browser=opera mini'', ');
    
$doc->lineLink ('Safari','?browser=safari');
    }
elseif (
$_GET['select'] == 'url')
    {
    echo 
'адрес: ';
    
$doc->lineLink ('анкеты','?php_self=/info.php'', ');
    
$doc->lineLink ('админ-панель','?php_self=/adm_panel'', ');
    
$doc->lineLink ('гостевая','?php_self=/guest/'', ');
    
$doc->lineLink ('чат','?php_self=/chat'', ');
    
$doc->lineLink ('форум','?php_self=/forum'', ');
    
$doc->lineLink ('загрузки','?php_self=/loads'', ');
    
$doc->lineLink ('обменник','?php_self=/obmen'', ');
    
$doc->lineLink ('голосования','?php_self=/votes');
    }
elseif (
$_GET['select'] == 'users')
    {
    echo 
'пользователя: ';
    
$i 0;
    
$text['nores'] = '';
    
$sql->output ('user''`id` != 1''`date_last` DESC'5);
    while (
$prof mysql_fetch_assoc ($while))
        {
        
$i++;
        
$doc->lineLink ($prof['nick'],'?user='.$prof['id'], ($i == $k_post?null:', '));
        }
    }
noBr (1);
$doc->link ('[delete] Скрыть список''?page='.$page);
echo 
'</div>';
}

echo 
"<a href='?filters_status=0'>".$doc->icon ('setting')." Выключить фильтры</a><br />";
$form = new form ('?page='.$pagefalse'get');
$form->brInput ('ID пользователя (<a href="?select=users">выбрать</a>)''user'filter ('user'), 5);
$form->brInput ('Браузер/ОС (<a href="?select=browsers">выбрать</a>)''browser'filter ('browser'), 5);
$form->brInput ('URL (<a href="?select=url">выбрать</a>)''php_self'filter ('php_self'), 5);
$form->brInput ('GET-запрос''query_string'filter ('query_string'), 5);
$form->brInput ('IP''ip'filter ('ip'), 5);
$form->brInput ('Proxy IP''proxy_ip'filter ('proxy_ip'), 5);
$form->brInput ('Referer''referer'filter ('referer'), 5);
echo 
'Генерация от ';
noBr (1);
$form->brInput (' до ''gen_from'filter ('gen_from'), 2); 
$form->brInput (' сек''gen_to'filter ('gen_to'), 2);
$form->hidden ($page'page');
$form->end ('Фильтровать''filt'true);
}

$filters null;
if (
is_filt ('user'))
    
$filters[] = "`user` = '".$ps['filters']['user']."'";
if (
is_filt ('browser'))
    
$filters[] = "`user_agent` like '%".$ps['filters']['browser']."%'";
if (
is_filt ('php_self'))
    
$filters[] = "`php_self` like '%".$ps['filters']['php_self']."%'";
if (
is_filt ('query_string'))
    
$filters[] = "`query_string` like '%".$ps['filters']['query_string']."%'";
if (
is_filt ('ip'))
    
$filters[] = "`ip` like '%".$ps['filters']['ip']."%'";
if (
is_filt ('proxy_ip'))
    
$filters[] = "`proxy_ip` like '%".$ps['filters']['proxy_ip']."%'";
if (
is_filt ('referer'))
    
$filters[] = "`referer` like '%".$ps['filters']['referer']."%'";
if (
is_filt ('gen_from'))
    
$filters[] = "`gen_from` > '".$ps['filters']['gen_from']."%'";
if (
is_filt ('gen_to'))
    
$filters[] = "`gen_to` < '".$ps['filters']['gen_to']."'";
    
/* Вывод шага отдельно и списком */
if (isset ($_GET['step']))
    {
    
$filters null;
    
$filters[] = "`id` = '".intval ($_GET['step'])."'";
    }
    
$sql->output ('guard_tracking'$filters);

while (
$step mysql_fetch_assoc ($while))
{
if (empty (
$step['user']))
    
$stepUserNick '<font color="red">Гость</font>';
    else
    {
    
$stepUserProf get_user ($step['user']);
    
$stepUserNick '<a href="/info.php?id='.$stepUserProf['id'].'">'.$stepUserProf['nick'].'</a>';
    }
    
/* Статус входа/выхода */
$aut null;
if (
$step['user'] != 0)
    {
    if (
$step['aut_status'] == 1)
        
$aut '<font color="green">[вошел]</font>';
        elseif (
$step['aut_status'] == 2)
        
$aut '<font color="red">[вышел]</font>';
        elseif (
$step['aut_status'] == 3)
        
$aut '<font color="orange">[зашел/вышел]</font>';
    }

$method = ($step['query_string']?'GET':null).' '.($step['method'] == 'GET'?null:'POST');
echo 
'<div class="post">
'
.$doc->icon ('step''?step='.$step['id']).'
'
.$step['id'].') <b>'.$stepUserNick.' '.$aut.'</b> ('.vremja ($step['time']).')<br />
<b>Браузер/ОС</b>: '
.not_null ($step['user_agent']).'<br />
<b>IP</b>: '
.not_null ($step['ip']).'<br />
<b>Proxy IP</b>: '
.not_null ($step['proxy_ip']).'<br />
<b>Referer</b>: '
.not_null ($step['referer']).'<br />
<b>URL</b>: '
.$step['php_self'].($step['query_string']?'?'.$step['query_string']:null)."<br />
<b>Методы</b>: "
.($method == ' '?'пусто':$method)."<br />
<b>Модуль</b>: "
.urlName ($step['php_self'])."<br />
<b>Генерация</b>: "
.$step['generation'].' сек';
if (
mysql_num_rows (mysql_query ("SELECT `id` FROM `guard_dossier` WHERE `step` = '$step[id]'")))
    {
    
$dossier $sql->assocArray ('guard_dossier''`step` = '.$step['id']);
    echo 
'<br /><font color="red"><b>Нарушение</b>: '.$guard->cause ($dossier['section'], $dossier['type']).'</font>';
    }
echo 
'</div>';
/* Дописать определение перегрузки сервера */
}

$sysLinks['menu'] = true;

$doc->link ('Очистить историю слежения''?clean');
$doc->link ('Переместить историю в архив''?archive');
Онлайн: 1
Реклама