Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.73 KB | None | 0 0
  1. <?php
  2.  
  3. class User
  4. {
  5.     public function __construct()
  6.     {
  7.     }
  8.    
  9.     public function getInput($label, $default = null, $allow_empty = false)
  10.     {
  11.         $this->write($label);
  12.         if($default) $this->write(" ($default)");
  13.         $this->write(": ");
  14.        
  15.         $line = rtrim(fgets(STDIN), "\n");
  16.         if($line == '' && $default != null) $line = $default;
  17.        
  18.         if($line == '' && $allow_empty == false) return $this->getInput($label, $default, $allow_empty);
  19.        
  20.         return $line;
  21.     }
  22.    
  23.     public function getPassword($label)
  24.     {
  25.         $this->write($label . ": ");
  26.        
  27.         $oldStyle = shell_exec('stty -g');
  28.        
  29.         shell_exec('stty -echo');
  30.         $password = rtrim(fgets(STDIN), "\n");
  31.         shell_exec('stty ' . $oldStyle);
  32.        
  33.         $this->write("\n");
  34.        
  35.         return $password;
  36.     }
  37.    
  38.     public function write($text)
  39.     {
  40.         fwrite(STDOUT, $text);
  41.     }
  42. }
  43.  
  44. $user = new User();
  45.  
  46. $params = array();
  47. $params['mysql_host'] = $user->getInput('mysql host', 'localhost');
  48. $params['mysql_root_password'] = $user->getPassword('mysql root password');
  49.  
  50. $db = @mysql_connect($params['mysql_host'], 'root', $params['mysql_root_password']);
  51. if($db) {
  52.     $user->write(">>> Connected to DB!\n");
  53. } else {
  54.     $user->write(">>> Could not connect: ".mysql_error()."\n");
  55.     exit;
  56. }
  57.  
  58.  
  59. $exit = false;
  60. $params['permissions'] = "SELECT, INSERT, UPDATE, DELETE";
  61. do {
  62.     $params['username'] = $user->getInput('New user username');
  63.     $params['password'] = $user->getInput("New user passsword hash. To enter plain password, press 'p'");
  64.     if($params['password'] == 'p')
  65.         $params['password_plain'] = $user->getPassword('New user passsword');
  66.        
  67.     $params['db'] = $user->getInput('DB name or coma separated list', @$params['db']);
  68.     $params['permissions'] = $user->getInput('Permissions', @$params['permissions']);
  69.    
  70.     $dbs = explode(",", $params['db']);
  71.     foreach($dbs as $db_name) {
  72.         $db_name = trim($db_name);
  73.         $sql = "GRANT {$params['permissions']} ON {$db_name}.* TO '{$params['username']}'@'locahost' IDENTIFIED BY ";
  74.         if($params['password'] == 'p') {
  75.             $sql .= "'{$params['password_plain']}'";
  76.         } else {
  77.             $sql .= "PASSWORD '{$params['password']}'";
  78.         }
  79.         $user->write(">>> Query: $sql\n");
  80.         $res = @mysql_query($sql, $db);
  81.         if($res) {
  82.             $user->write(">>> Success!\n");            
  83.         } else {
  84.             $user->write(">>> ERROR: ".mysql_error()."\n");
  85.         }
  86.     }
  87.    
  88.     $exit = $user->getInput("Type 'x' to exit, or any key to create new user", null, true) == 'x';
  89.    
  90. } while ($exit == false);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement