Guest User

Untitled

a guest
Jan 19th, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 11.62 KB | None | 0 0
  1. <?php
  2.  
  3. session_start();
  4.  
  5. $page['title'] = 'databases';
  6.  
  7. include 'inc-all.php';
  8.  
  9. if (isset($_GET['delete']))
  10. {
  11.     $sql = mysql_query("select * from `databases` where `id`='".mysql_real_escape_string($_GET['delete'])."'");
  12.    
  13.     if (mysql_num_rows($sql) != 0)
  14.     {
  15.         $host = mysql_result($sql, 0, 'host');
  16.         $name = mysql_result($sql, 0, 'name');
  17.        
  18.         mysql_query("delete from `databases` where `id`='".mysql_real_escape_string($_GET['delete'])."'");
  19.         mysql_query("delete from `feeds` where `id_database`='".mysql_real_escape_string($_GET['delete'])."'");
  20.        
  21.         $success = urlencode("$name on $host has been deleted from databases");
  22.         header('Location: databases.php?success='.$success);
  23.         die();
  24.     }
  25. }
  26.  
  27. if (isset($_POST['host']))
  28. {
  29.     foreach ($_POST as $k => $v)
  30.         $$k = trim(htmlspecialchars_decode($v, ENT_QUOTES));
  31.    
  32.     if (mysql_result(mysql_query("select count(*) from `databases` where
  33.                                   `host`='".mysql_real_escape_string($host)."' and
  34.                                   `name`='".mysql_real_escape_string($name)."' and
  35.                                   `type`='".mysql_real_escape_string($type)."' and
  36.                                   `prefix`='".mysql_real_escape_string($prefix)."'"), 0) != 0)
  37.     {
  38.         $errors[] = 'database has already been added';
  39.     }
  40.     else if (mysql_result(mysql_query("select count(*) from `types` where `value`='".mysql_real_escape_string($type)."'"), 0) == 0)
  41.     {
  42.         $errors[] = 'you must select a database type';
  43.     }
  44.     else
  45.     {  
  46.         if (@mysql_connect($host, $username, $password))
  47.         {
  48.             if (@mysql_select_db($name))
  49.             {
  50.                 if ($sql = mysql_query('show tables from '.mysql_real_escape_string($name)))
  51.                 {
  52.                     $tables = array();
  53.                    
  54.                     while ($row = mysql_fetch_row($sql))
  55.                         $tables[] = $row[0];
  56.                        
  57.                     if ((($type == 'vb3' || $type == 'vb4') && (!in_array($prefix.'forum', $tables) || !in_array($prefix.'thread', $tables) || !in_array($prefix.'post', $tables) || !in_array($prefix.'user', $tables))))
  58.                         $errors[] = 'failed to find '.htmlspecialchars($type, ENT_QUOTES).' database tables';
  59.                 }
  60.                 else
  61.                 {
  62.                     $errors[] = 'failed to list database tables';
  63.                 }
  64.             }
  65.             else
  66.             {
  67.                 $errors[] = 'failed to select database';
  68.             }
  69.         }
  70.         else
  71.         {
  72.             $errors[] = 'failed to connect to database';
  73.         }
  74.     }
  75.    
  76.     include 'inc-connect.php';
  77.        
  78.     if (empty($errors))
  79.     {  
  80.         foreach ($_POST as $k => $v)
  81.             $$k = mysql_real_escape_string(trim(htmlspecialchars_decode($v, ENT_QUOTES)));
  82.            
  83.         mysql_query("insert into `databases` (`host`, `name`, `username`, `password`, `type`, `prefix`)
  84.                                       values ('$host', '$name', '$username', '$password', '$type', '$prefix')");
  85.        
  86.         $success = urlencode('new database '.$name.' on '.$host.' has been added');
  87.         header('Location: databases.php?success='.$success);
  88.         die();
  89.     }
  90.     else
  91.     {
  92.         include 'inc-connect.php';
  93.            
  94.         $error_type = 'add';
  95.     }
  96. }
  97.  
  98. if (isset($_POST['id_database']))
  99. {
  100.     foreach ($_POST as $k => $v)
  101.         $$k = trim(htmlspecialchars_decode($v, ENT_QUOTES));
  102.    
  103.     $sql = mysql_query("select * from `databases` where `id`='".mysql_real_escape_string($id_database)."'");
  104.    
  105.     if (mysql_num_rows($sql) == 0)
  106.     {
  107.         $errors[] = 'you must select a database';
  108.     }
  109.     else
  110.     {
  111.         while ($row = mysql_fetch_assoc($sql))
  112.         {
  113.             foreach ($row as $k => $v)
  114.                 $$k = $v;
  115.         }
  116.        
  117.         if (@mysql_connect($host, $username, $password))
  118.         {
  119.             if (@mysql_select_db($name))
  120.             {
  121.                 if ($sql = mysql_query('show tables from '.mysql_real_escape_string($name)))
  122.                 {
  123.                     $tables = array();
  124.                    
  125.                     while ($row = mysql_fetch_row($sql))
  126.                         $tables[] = $row[0];
  127.                        
  128.                     if ((($type == 'vb3' || $type == 'vb4') && (!in_array($prefix.'user', $tables))))
  129.                         $errors[] = 'failed to find '.htmlspecialchars($type, ENT_QUOTES).' database table';
  130.                 }
  131.                 else
  132.                 {
  133.                     $errors[] = 'failed to list database tables';
  134.                 }
  135.             }
  136.             else
  137.             {
  138.                 $errors[] = 'failed to select database';
  139.             }
  140.         }
  141.         else
  142.         {          
  143.             $errors[] = 'failed to connect to database';
  144.         }
  145.     }
  146.    
  147.     if (empty($users))
  148.         $errors[] = 'you must enter a number of users';
  149.     else if (!ctype_digit($users))
  150.         $errors[] = 'number of users must be a number';
  151.     else if ($users > 100000)
  152.         $errors[] = 'number of fake users must be <= 100,000 per database';
  153.        
  154.     if (empty($errors))
  155.     {
  156.         include 'inc-connect.php';
  157.        
  158.         $sql = mysql_query("select `username` from `fake_usernames` order by rand() limit $users");
  159.         $fake_usernames = array();
  160.         $fake_user_ids = explode(',', trim(mysql_result(mysql_query("select `fake_user_ids` from `databases` where `id`='$id'"), 0), ','));
  161.         $count = 0;
  162.        
  163.         while ($row = mysql_fetch_assoc($sql))
  164.             $fake_usernames[] = $row['username'];
  165.        
  166.         mysql_connect($host, $username, $password);
  167.         mysql_select_db($name);
  168.        
  169.         if ($type == 'vb3' || $type == 'vb4')
  170.         {
  171.             foreach ($fake_usernames as $k => $v)
  172.             {
  173.                 $rand_time = (time() - 31536000 + mt_rand(0, 31536000));
  174.            
  175.                 if (mysql_result(mysql_query("select count(*) from `".$prefix."user` where `username`='$v'"), 0) == 0)
  176.                 {              
  177.                     mysql_query("insert into `".$prefix."user` (`username`, `usergroupid`, `joindate`) values ('$v', '2', '$rand_time')") or die(mysql_error());
  178.                    
  179.                     $mysql_insert_id = mysql_insert_id();
  180.                     $fake_user_ids[] = $mysql_insert_id;
  181.                    
  182.                     mysql_query("insert into `".$prefix."userfield` (`userid`) values ('$mysql_insert_id')") or die(mysql_error());
  183.                     mysql_query("insert into `".$prefix."usertextfield` (`userid`) values ('$mysql_insert_id')") or die(mysql_error());
  184.                    
  185.                     $count++;
  186.                 }
  187.             }
  188.                
  189.             $data = mysql_result(mysql_query("select `data` from `".$prefix."datastore` where `title`='userstats'"), 0);
  190.             $data = unserialize($data);
  191.             $data['numbermembers'] = mysql_result(mysql_query("select count(*) from `".$prefix."user`"), 0);
  192.             $data['newusername'] = mysql_result(mysql_query("select `username` from `".$prefix."user` order by `userid` desc limit 1"), 0);
  193.             $data['newuserid'] = mysql_result(mysql_query("select `userid` from `".$prefix."user` order by `userid` desc limit 1"), 0);
  194.             $data = serialize($data);
  195.             mysql_query("update `".$prefix."datastore` set `data`='$data' where `title`='userstats'") or die(mysql_error());
  196.         }
  197.        
  198.         $fake_user_ids = implode(',', $fake_user_ids);
  199.        
  200.         include 'inc-connect.php';
  201.        
  202.         mysql_query("update `databases` set `fake_users`=`fake_users`+$count, `fake_user_ids`='$fake_user_ids' where `id`='$id'");
  203.            
  204.         $success = urlencode(number_format($users).' fake users added to '.$name.' on '.$host);
  205.         header('Location: databases.php?success='.$success);
  206.         die();
  207.     }
  208.     else
  209.     {
  210.         include 'inc-connect.php';
  211.    
  212.         $error_type = 'users';
  213.     }
  214. }
  215.  
  216. include 'header.php';
  217.  
  218. ?>
  219.  
  220.  
  221.  
  222. <div class="basic-modal-content" id="add_database">
  223.  
  224.     <h1>add a database</h1>
  225.    
  226.     <?php
  227.    
  228.     if ($error_type == 'add')
  229.         echo_errors($errors);
  230.    
  231.     ?>
  232.    
  233.     <form method="post" action="databases.php">
  234.    
  235.     <p>
  236.     <label for="host">database host:</label>
  237.     <input type="text" name="host" id="host" size="30" value="<?php echo $host; ?>" />
  238.     </p>
  239.    
  240.     <p>
  241.     <label for="name">database name:</label>
  242.     <input type="text" name="name" id="name" size="30" value="<?php echo $name; ?>" />
  243.     </p>
  244.    
  245.     <p>
  246.     <label for="username">database username:</label>
  247.     <input type="text" name="username" id="username" size="30" value="<?php echo $username; ?>" />
  248.     </p>
  249.    
  250.     <p>
  251.     <label for="password">database password:</label>
  252.     <input type="password" name="password" id="password" size="30" value="<?php echo $password; ?>" />
  253.     </p>
  254.    
  255.     <p>
  256.     <label for="type">database type:</label>
  257.     <select name="type" id="type">
  258.     <option value=""></option>
  259.     <?php
  260.    
  261.     $sql = mysql_query("select * from `types` order by `value` asc");
  262.    
  263.     while ($row = mysql_fetch_assoc($sql))
  264.         echo '<option value="'.$row['value'].'"'.(($type == $row['value']) ? ' selected="selected"' : '').'>'.$row['name'].'</option>';
  265.    
  266.     ?>
  267.     </select>
  268.     </p>
  269.    
  270.     <p>
  271.     <label for="prefix">database table prefix:</label>
  272.     <input type="text" name="prefix" id="prefix" size="30" value="<?php echo $prefix; ?>" />
  273.     </p>
  274.  
  275.     <p style="text-align: center;">
  276.     <input type="submit" value="add database" />
  277.     <img src="images/ajax-loader.gif" alt="loading" style="display: none;" />
  278.     </p>
  279.    
  280.     </form>
  281.  
  282. </div>
  283.  
  284. <div class="basic-modal-content" id="add_users">
  285.  
  286.     <h1>add fake users to database</h1>
  287.    
  288.     <?php
  289.    
  290.     if ($error_type == 'users')
  291.         echo_errors($errors);
  292.    
  293.     ?>
  294.    
  295.     <form method="post" action="databases.php">
  296.    
  297.     <p>
  298.     <label for="id_database">select database:</label>
  299.     <select name="id_database" id="id_database">
  300.     <?php
  301.    
  302.     $sql = mysql_query("select * from `databases` order by `host`, `name` asc");
  303.    
  304.     while ($row = mysql_fetch_assoc($sql))
  305.         echo '<option value="'.$row['id'].'"'.(($id_database == $row['id']) ? ' selected="selected"' : '').'>'.$row['name'].' on '.$row['host'].'</option>';
  306.    
  307.     ?>
  308.     </select>
  309.     </p>
  310.    
  311.     <p>
  312.     <label for="users">number of users:</label>
  313.     <input type="text" name="users" id="users" size="30" value="<?php echo $users; ?>" />
  314.     </p>
  315.  
  316.     <p style="text-align: center;">
  317.     <input type="submit" value="add users" />
  318.     <img src="images/ajax-loader.gif" alt="loading" style="display: none;" />
  319.     </p>
  320.    
  321.     </form>
  322.  
  323. </div>
  324.  
  325. <div class="button" id="button_add"><a href="#"><span>add a database</span></a></div>
  326.  
  327. <h1><?php echo $page['title']; ?></h1>
  328.  
  329. <?php
  330.  
  331. echo_success(htmlspecialchars($_GET['success'], ENT_QUOTES));
  332.  
  333. $sql = mysql_query("select * from `databases` order by `host`, `name` asc");
  334.  
  335. if (mysql_num_rows($sql) == 0)
  336.     echo_alert('you have not added any databases yet');
  337.  
  338. if (mysql_num_rows($sql) != 0)
  339. {
  340.  
  341.     ?>
  342.    
  343.     <table cellpadding="10" cellspacing="1" border="0" width="100%">
  344.     <tr>
  345.     <th class="l">host</th>
  346.     <th>name</th>
  347.     <th>type</th>
  348.     <th nowrap="nowrap">table prefix</th>
  349.     <th nowrap="nowrap">fake users</th>
  350.     <th class="r">functions</th>
  351.     </tr>
  352.     <?php
  353.  
  354.     $count = 0;
  355.  
  356.     while ($row = mysql_fetch_assoc($sql))
  357.     {
  358.         foreach ($row as $k => $v)
  359.             $$k = htmlspecialchars($v, ENT_QUOTES);
  360.  
  361.         echo '<tr'.(($count % 2) ? ' class="alt"' : '').'>';
  362.         echo '<td>'.$host.'</td>';
  363.         echo '<td>'.$name.'</td>';
  364.         echo '<td>'.$type.'</td>';
  365.         echo '<td>'.$prefix.'</td>';
  366.         echo '<td>'.number_format($fake_users).'</td>';
  367.         echo '<td>';
  368.         echo '<a href="#" title="add fake users" onclick="add_users(\''.$id.'\'); return false;"><img src="images/icon-user.png" alt="add fake users" /></a> ';
  369.         echo '<a href="databases.php?delete='.$id.'" onclick="return confirm_delete(\''.$name.' on '.$host.'\');" title="delete"><img src="images/icon-trash.png" alt="delete" /></a>';
  370.         echo '</td>';
  371.         echo '</tr>';
  372.        
  373.         $count++;
  374.     }
  375.  
  376.     ?>
  377.     </table>
  378.  
  379.     <?php
  380.  
  381. }
  382.  
  383. ?>
  384.  
  385. <script type="text/javascript">
  386. jQuery(function ($) {
  387.    
  388.     <?php
  389.     if ($error_type == 'add')
  390.         echo "$('#add_database').modal({ onShow: function(dlg) { $(dlg.container).css('height','auto') }});";
  391.     else if ($error_type == 'users')
  392.         echo "$('#add_users').modal({ onShow: function(dlg) { $(dlg.container).css('height','auto') }});";
  393.     ?>
  394.    
  395.     $('form').submit(function () {
  396.         $('input[type=submit]', this).hide();
  397.         $('img', this).show();
  398.     });
  399.    
  400.     $('#button_add').click(function (e) {
  401.         e.preventDefault();
  402.         $('.errors').hide();
  403.         $('#add_database').find('input[type=text], input[type=password], select').val('');
  404.         $('#add_database').modal({ onShow: function(dlg) { $(dlg.container).css('height','auto') }});
  405.     });
  406. });
  407.  
  408. function add_users (id_database)
  409. {
  410.     $('#id_database').val(id_database);
  411.     $('#add_users').modal({ onShow: function(dlg) { $(dlg.container).css('height','auto') }});
  412. }
  413.  
  414. function confirm_delete (message)
  415. {
  416.     var answer = confirm('delete '+message+'?');
  417.    
  418.     if (answer)
  419.         return true;
  420.     else    
  421.         return false;  
  422. }
  423. </script>
  424.  
  425.  
  426.  
  427. <?php
  428.  
  429. include 'footer.php';
  430.  
  431. ?>
Add Comment
Please, Sign In to add comment