/temp/server/php/sys_options.php

https://github.com/korczis/Zeus · PHP · 108 lines · 84 code · 14 blank · 10 comment · 23 complexity · 93ee1f1c42fd015a4241c9a099122b5f MD5 · raw file

  1. <?php if(!defined('__CP__'))die();
  2. define('INPUT_WIDTH', '300px');
  3. $errors = array();
  4. ///////////////////////////////////////////////////////////////////////////////////////////////////
  5. // Обработка данных.
  6. ///////////////////////////////////////////////////////////////////////////////////////////////////
  7. $is_post = strcmp($_SERVER['REQUEST_METHOD'], 'POST') === 0 ? true : false;
  8. if(!isset($_POST['reports_path']))$reports_path = $config['reports_path'];
  9. else
  10. {
  11. if(($l = strlen($_POST['reports_path'])) < 1 || $l > 200)$errors[] = LNG_SYS_E1;
  12. $reports_path = $_POST['reports_path'];
  13. }
  14. $reports_path = trim(str_replace('\\', '/', trim($reports_path)), '/');
  15. $reports_to_db = (isset($_POST['reports_to_db']) && $_POST['reports_to_db'] == 1) ? 1 : ($is_post ? 0 : $config['reports_to_db']);
  16. $reports_to_fs = (isset($_POST['reports_to_fs']) && $_POST['reports_to_fs'] == 1) ? 1 : ($is_post ? 0 : $config['reports_to_fs']);
  17. if(isset($_POST['botnet_timeout']) && is_numeric($_POST['botnet_timeout']))$botnet_timeout = (int)intval($_POST['botnet_timeout']);
  18. else $botnet_timeout = (int)($config['botnet_timeout'] / 60);
  19. if($botnet_timeout < 1 || $botnet_timeout > 9999)$errors[] = LNG_SYS_E2;
  20. if(!isset($_POST['botnet_cryptkey']))$botnet_cryptkey = $config['botnet_cryptkey'];
  21. else
  22. {
  23. if(($l = strlen($_POST['botnet_cryptkey'])) < 1 || $l > 255)$errors[] = LNG_SYS_E3;
  24. $botnet_cryptkey = $_POST['botnet_cryptkey'];
  25. }
  26. //Сохранение параметров.
  27. if($is_post && count($errors) == 0)
  28. {
  29. $updateList['reports_path'] = $reports_path;
  30. $updateList['reports_to_db'] = $reports_to_db ? 1 : 0;
  31. $updateList['reports_to_fs'] = $reports_to_fs ? 1 : 0;
  32. $updateList['botnet_timeout'] = $botnet_timeout * 60;
  33. $updateList['botnet_cryptkey'] = $botnet_cryptkey;
  34. if(!updateConfig($updateList))$errors[] = LNG_SYS_E4;
  35. else
  36. {
  37. createDir($reports_path);
  38. header('Location: '.QUERY_STRING.'&u=1');
  39. die();
  40. }
  41. }
  42. ///////////////////////////////////////////////////////////////////////////////////////////////////
  43. // Вывод.
  44. ///////////////////////////////////////////////////////////////////////////////////////////////////
  45. ThemeBegin(LNG_SYS, 0, 0, 0);
  46. //Вывод ошибок.
  47. if(count($errors) > 0)
  48. {
  49. echo THEME_STRING_FORM_ERROR_1_BEGIN;
  50. foreach($errors as $r)echo $r.THEME_STRING_NEWLINE;
  51. echo THEME_STRING_FORM_ERROR_1_END;
  52. }
  53. //Вывод сообщений.
  54. else if(isset($_GET['u']))
  55. {
  56. echo THEME_STRING_FORM_SUCCESS_1_BEGIN.LNG_SYS_UPDATED.THEME_STRING_NEWLINE.THEME_STRING_FORM_SUCCESS_1_END;
  57. }
  58. //Вывод формы.
  59. echo
  60. str_replace(array('{NAME}', '{URL}', '{JS_EVENTS}'), array('options', QUERY_STRING_HTML, ''), THEME_FORMPOST_BEGIN),
  61. str_replace('{WIDTH}', 'auto', THEME_DIALOG_BEGIN).
  62. THEME_DIALOG_ROW_BEGIN.
  63. str_replace('{COLUMNS_COUNT}', 1, THEME_DIALOG_GROUP_BEGIN).
  64. str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(2, LNG_SYS_REPORTS), THEME_DIALOG_TITLE).
  65. THEME_DIALOG_ROW_BEGIN.
  66. str_replace('{TEXT}', LNG_SYS_REPORTS_PATH, THEME_DIALOG_ITEM_TEXT).
  67. str_replace(array('{NAME}', '{VALUE}', '{MAX}', '{WIDTH}'), array('reports_path', htmlEntitiesEx($reports_path), 200, INPUT_WIDTH), THEME_DIALOG_ITEM_INPUT_TEXT).
  68. THEME_DIALOG_ROW_END.
  69. THEME_DIALOG_ROW_BEGIN.
  70. str_replace('{TEXT}', THEME_STRING_SPACE, THEME_DIALOG_ITEM_TEXT).
  71. str_replace(array('{COLUMNS_COUNT}', '{NAME}', '{VALUE}', '{JS_EVENTS}', '{TEXT}'), array(1, 'reports_to_db', 1, '', LNG_SYS_REPORTS_TODB), $reports_to_db ? THEME_DIALOG_ITEM_INPUT_CHECKBOX_ON_2 : THEME_DIALOG_ITEM_INPUT_CHECKBOX_2).
  72. THEME_DIALOG_ROW_END.
  73. THEME_DIALOG_ROW_BEGIN.
  74. str_replace('{TEXT}', THEME_STRING_SPACE, THEME_DIALOG_ITEM_TEXT).
  75. str_replace(array('{COLUMNS_COUNT}', '{NAME}', '{VALUE}', '{JS_EVENTS}', '{TEXT}'), array(1, 'reports_to_fs', 1, '', LNG_SYS_REPORTS_TOFS), $reports_to_fs ? THEME_DIALOG_ITEM_INPUT_CHECKBOX_ON_2 : THEME_DIALOG_ITEM_INPUT_CHECKBOX_2).
  76. THEME_DIALOG_ROW_END.
  77. str_replace(array('{COLUMNS_COUNT}', '{TEXT}'), array(2, LNG_SYS_BOTNET), THEME_DIALOG_TITLE).
  78. THEME_DIALOG_ROW_BEGIN.
  79. str_replace('{TEXT}', LNG_SYS_BOTNET_TIMEOUT, THEME_DIALOG_ITEM_TEXT).
  80. str_replace(array('{NAME}', '{VALUE}', '{MAX}', '{WIDTH}'), array('botnet_timeout', htmlEntitiesEx($botnet_timeout), 4, INPUT_WIDTH), THEME_DIALOG_ITEM_INPUT_TEXT).
  81. THEME_DIALOG_ROW_END.
  82. THEME_DIALOG_ROW_BEGIN.
  83. str_replace('{TEXT}', LNG_SYS_BOTNET_CRYPTKEY, THEME_DIALOG_ITEM_TEXT).
  84. str_replace(array('{NAME}', '{VALUE}', '{MAX}', '{WIDTH}'), array('botnet_cryptkey', htmlEntitiesEx($botnet_cryptkey), 255, INPUT_WIDTH), THEME_DIALOG_ITEM_INPUT_TEXT).
  85. THEME_DIALOG_ROW_END.
  86. THEME_DIALOG_GROUP_END.
  87. THEME_DIALOG_ROW_END.
  88. str_replace('{COLUMNS_COUNT}', 2, THEME_DIALOG_ACTIONLIST_BEGIN).
  89. str_replace(array('{TEXT}', '{JS_EVENTS}'), array(LNG_SYS_SAVE, ''), THEME_DIALOG_ITEM_ACTION_SUBMIT).
  90. THEME_DIALOG_ACTIONLIST_END.
  91. THEME_DIALOG_END.
  92. THEME_FORMPOST_END;
  93. ThemeEnd();
  94. ?>