connect($db_host,$db_user,$db_pass,$db_name,$table_prefix); global $view, $db; $mysql_server_id = @$_REQUEST['mysql_server_id']; $mysql_server = $modDb->getMysqlServer($mysql_server_id); if($mysql_server['remote_server_id'] == "0") $server_homes = $db->getGameHomes(); else $server_homes = $modDb->getGameHomesByRemoteServerId($mysql_server['remote_server_id']); $homes_array[0] = get_lang('select_game_server'); foreach($server_homes as $server_home) { $homes_array[$server_home['home_id']] = "(ID ".$server_home['home_id'].") ".$server_home['home_name']; } if ( $mysql_server === FALSE ) { print_failure(get_lang_f('invalid_mysql_server_id',$mysql_server_id)); $view->refresh("?m=mysql&p=mysql_admin"); return; } if ( isset($_REQUEST['add_db']) ) { $home_id = $_POST['home_id']; $db_user = trim($_POST['db_user']); $db_passwd = trim($_POST['db_passwd']); $db_name = trim($_POST['db_name']); $enabled = $_POST['enabled']; if ( empty($db_user) ){ print_failure(get_lang('enter_db_user')); } elseif ( empty($db_passwd) ){ print_failure(get_lang('enter_db_password')); } elseif ( empty($db_name) ){ print_failure(get_lang('enter_db_name')); } elseif ( $home_id == 0 ){ print_failure(get_lang('select_game_server')); } else { $db_id = $modDb->addMysqlServerDB($mysql_server_id, $home_id, $db_user, $db_passwd, $db_name, $enabled); if(!$db_id) { print_failure(get_lang_f('there_is_another_db_named_or_user_named',$db_name,$db_user)); } else { $mysql_db = $modDb->getMysqlDBbyId($db_id); if(!$mysql_db) return; if($mysql_db['remote_server_id'] != "0") { $remote_server = $db->getRemoteServer($mysql_db['remote_server_id']); $remote = new OGPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key'],$remote_server['timeout']); $host_stat = $remote->status_chk(); if($host_stat === 1 ) { $command = "mysql -h localhost -P ".$mysql_db['mysql_port']." -u root -p".$mysql_db['mysql_root_passwd'].' -e exit; echo $?'; $test_mysql_conn = $remote->exec($command); if($test_mysql_conn == 0) { $SQL = "CREATE DATABASE IF NOT EXISTS \\`".$mysql_db['db_name']."\\`;". "GRANT ".$mysql_db['privilegies_str']." ON \\`".$mysql_db['db_name']."\\`.* TO '".$mysql_db['db_user']."'@'%' IDENTIFIED BY '".$mysql_db['db_passwd']."';". "FLUSH PRIVILEGES;"; $command = "mysql --host=localhost --port=".$mysql_db['mysql_port']." -uroot -p".$mysql_db['mysql_root_passwd']." -e \"".$SQL."\""; $result = $remote->exec($command); } } } else { if( function_exists('mysqli_connect') ) { @$link = mysqli_connect($mysql_db['mysql_ip'], $mysql_db['db_user'], $mysql_db['db_passwd'], $mysql_db['db_name'], $mysql_db['mysql_port']); if ( $link === FALSE ) { @$link = mysqli_connect($mysql_db['mysql_ip'], 'root', $mysql_db['mysql_root_passwd'], "", $mysql_db['mysql_port']); if ( $link !== FALSE ) { $queries = array("CREATE DATABASE IF NOT EXISTS `".$mysql_db['db_name']."`;", "GRANT ".$mysql_db['privilegies_str']." ON `".$mysql_db['db_name']."`.* TO '".$mysql_db['db_user']."'@'%' IDENTIFIED BY '".$mysql_db['db_passwd']."';", "FLUSH PRIVILEGES;"); foreach( $queries as $query ) { @$return = mysqli_query($link, $query); if(!$return) { break; } } mysqli_close($link); } } } else { @$link = mysql_connect($mysql_db['mysql_ip'].':'.$mysql_db['mysql_port'], $mysql_db['db_user'], $mysql_db['db_passwd']); if ( $link === FALSE ) { @$link = mysql_connect($mysql_db['mysql_ip'].':'.$mysql_db['mysql_port'], 'root', $mysql_db['mysql_root_passwd']); if ( $link !== FALSE ) { $queries = array("CREATE DATABASE IF NOT EXISTS `".$mysql_db['db_name']."`;", "GRANT ".$mysql_db['privilegies_str']." ON `".$mysql_db['db_name']."`.* TO '".$mysql_db['db_user']."'@'%' IDENTIFIED BY '".$mysql_db['db_passwd']."';", "FLUSH PRIVILEGES;"); foreach( $queries as $query ) { @$return = mysql_query($query); if(!$return) { break; } } mysql_close($link); } } } } print_success(get_lang_f('db_added_for_home_id',$_POST['home_id'])); } } $view->refresh("?m=mysql&p=mysql_admin&p=edit&mysql_server_id=".$mysql_server_id."&assign",5); } else if ( isset($_REQUEST['remove_db']) ) { $db_id = $_REQUEST['db_id']; $mysql_db = $modDb->getMysqlDBbyId($db_id); if($mysql_db['remote_server_id'] != "0") { $remote_server = $db->getRemoteServer($mysql_db['remote_server_id']); $remote = new OGPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key'],$remote_server['timeout']); $host_stat = $remote->status_chk(); if($host_stat === 1 ) { $remote->exec('mysql --host=localhost --port='.$mysql_db['mysql_port'].' -uroot -p'.$mysql_db['mysql_root_passwd']. ' -e "DROP DATABASE '.$mysql_db['db_name'].";DROP USER '".$mysql_db['db_user']."'@'%';\""); } } else { if( function_exists('mysqli_connect') ) { @$link = mysqli_connect($mysql_db['mysql_ip'], 'root', $mysql_db['mysql_root_passwd'], "", $mysql_db['mysql_port']); if ( $link !== FALSE ) { $queries = array("DROP DATABASE ".$mysql_db['db_name'].";", "DROP USER '".$mysql_db['db_user']."'@'%';"); foreach( $queries as $query ) { @$return = mysqli_query($link, $query); if(!$return) break; } mysqli_close($link); $modDb->connect($db_host,$db_user,$db_pass,$db_name,$table_prefix); } } else { @$link = mysql_connect($mysql_db['mysql_ip'].':'.$mysql_db['mysql_port'], 'root', $mysql_db['mysql_root_passwd']); if ( $link !== FALSE ) { $queries = array("DROP DATABASE ".$mysql_db['db_name'].";", "DROP USER '".$mysql_db['db_user']."'@'%';"); foreach( $queries as $query ) { @$return = mysql_query($query); if(!$return) break; } mysql_close($link); $modDb->connect($db_host,$db_user,$db_pass,$db_name,$table_prefix); } } } if ( $modDb->removeMysqlServerDB($db_id) === FALSE ) { print_failure(get_lang('could_not_remove_db')); } else { print_success(get_lang_f('db_removed_successfully_from_mysql_server_named',$mysql_db['mysql_name'])); } $view->refresh("?m=mysql&p=mysql_admin&p=edit&mysql_server_id=".$mysql_server_id."&assign"); } else if ( isset($_POST['save_db_changes']) ) { $db_id = $_POST['db_id']; $home_id = $_POST['home_id']; $post_db_user = trim($_POST['db_user']); $post_db_passwd = trim($_POST['db_passwd']); $post_db_name = trim($_POST['db_name']); $enabled = $_POST['enabled']; if ( empty($post_db_passwd) ){ print_failure(get_lang('enter_db_password')); } elseif ( $home_id == 0 ){ print_failure(get_lang('select_game_server')); } else { $mysql_db = $modDb->getMysqlDBbyId($db_id); if($post_db_passwd != $mysql_db['db_passwd']) { if($mysql_db['remote_server_id'] != "0") { $remote_server = $db->getRemoteServer($mysql_db['remote_server_id']); $remote = new OGPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key'],$remote_server['timeout']); $host_stat = $remote->status_chk(); if($host_stat === 1 ) { $SQL = "DROP USER '".$mysql_db['db_user']."'@'%';". "GRANT ".$mysql_db['privilegies_str']." ON \\`".$mysql_db['db_name']."\\`.* TO '".$mysql_db['db_user']."'@'%' IDENTIFIED BY '".$post_db_passwd."';". "FLUSH PRIVILEGES;"; $command = "mysql --host=localhost --port=".$mysql_db['mysql_port']." -uroot -p".$mysql_db['mysql_root_passwd']." -e \"".$SQL."\""; $remote->exec($command); } } else { if( function_exists('mysqli_connect') ) { @$link = mysqli_connect($mysql_db['mysql_ip'], 'root', $mysql_db['mysql_root_passwd'], "", $mysql_db['mysql_port']); if ( $link !== FALSE ) { $queries = array("DROP USER '".$mysql_db['db_user']."'@'%';", "GRANT ".$mysql_db['privilegies_str']." ON `".$mysql_db['db_name']."`.* TO '".$mysql_db['db_user']."'@'%' IDENTIFIED BY '".$post_db_passwd."';", "FLUSH PRIVILEGES;"); foreach( $queries as $query ) { @$return = mysqli_query($link, $query); if(!$return) break; } mysqli_close($link); $modDb->connect($db_host,$db_user,$db_pass,$db_name,$table_prefix); } } else { @$link = mysql_connect($mysql_db['mysql_ip'].':'.$mysql_db['mysql_port'], 'root', $mysql_db['mysql_root_passwd']); if ( $link !== FALSE ) { $queries = array("DROP USER '".$mysql_db['db_user']."'@'%';", "GRANT ".$mysql_db['privilegies_str']." ON `".$mysql_db['db_name']."`.* TO '".$mysql_db['db_user']."'@'%' IDENTIFIED BY '".$post_db_passwd."';", "FLUSH PRIVILEGES;"); foreach( $queries as $query ) { @$return = mysql_query($query); if(!$return) break; } mysql_close($link); $modDb->connect($db_host,$db_user,$db_pass,$db_name,$table_prefix); } } } } if($enabled != $mysql_db['enabled'] ) { if($mysql_db['remote_server_id'] != "0") { $remote_server = $db->getRemoteServer($mysql_db['remote_server_id']); $remote = new OGPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key'],$remote_server['timeout']); $host_stat = $remote->status_chk(); if($host_stat === 1 ) { if($enabled == "0") $SQL = "DROP USER '".$mysql_db['db_user']."'@'%';". "FLUSH PRIVILEGES;"; else $SQL = "GRANT ".$mysql_db['privilegies_str']." ON \\`".$mysql_db['db_name']."\\`.* TO '".$mysql_db['db_user']."'@'%' IDENTIFIED BY '".$post_db_passwd."';". "FLUSH PRIVILEGES;"; $command = "mysql --host=localhost --port=".$mysql_db['mysql_port']." -uroot -p".$mysql_db['mysql_root_passwd']." -e \"".$SQL."\""; $remote->exec($command); } } else { if( function_exists('mysqli_connect') ) { @$link = mysqli_connect($mysql_db['mysql_ip'], 'root', $mysql_db['mysql_root_passwd'], "", $mysql_db['mysql_port']); if ( $link !== FALSE ) { if($enabled == "0") $queries = array("DROP USER '".$mysql_db['db_user']."'@'%';", "FLUSH PRIVILEGES;"); else $queries = array("GRANT ".$mysql_db['privilegies_str']." ON `".$mysql_db['db_name']."`.* TO '".$mysql_db['db_user']."'@'%' IDENTIFIED BY '".$post_db_passwd."';", "FLUSH PRIVILEGES;"); foreach( $queries as $query ) { @$return = mysqli_query($link, $query); if(!$return) break; } mysqli_close($link); $modDb->connect($db_host,$db_user,$db_pass,$db_name,$table_prefix); } } else { @$link = mysql_connect($mysql_db['mysql_ip'].':'.$mysql_db['mysql_port'], 'root', $mysql_db['mysql_root_passwd']); if ( $link !== FALSE ) { if($enabled == "0") $queries = array("DROP USER '".$mysql_db['db_user']."'@'%';", "FLUSH PRIVILEGES;"); else $queries = array("GRANT ".$mysql_db['privilegies_str']." ON `".$mysql_db['db_name']."`.* TO '".$mysql_db['db_user']."'@'%' IDENTIFIED BY '".$post_db_passwd."';", "FLUSH PRIVILEGES;"); foreach( $queries as $query ) { @$return = mysql_query($query); if(!$return) break; } mysql_close($link); $modDb->connect($db_host,$db_user,$db_pass,$db_name,$table_prefix); } } } } if ( $modDb->editMysqlServerDB($db_id, $home_id, $post_db_user, $post_db_passwd, $post_db_name, $enabled) === FALSE ) { print_failure(get_lang('could_not_be_changed')); } else { print_success(get_lang_f('db_changed_successfully',$post_db_name)); } } $view->refresh("?m=mysql&p=mysql_admin&p=edit&mysql_server_id=".$mysql_server_id."&assign"); } else if ( isset($_REQUEST['delete']) ) { if ( !isset($_REQUEST['y'] ) ) { echo "
".get_lang_f('areyousure_remove_mysql_server',$mysql_server['mysql_name'])."
". get_lang('yes')." ". get_lang('no')."
"; return; } else { $mysql_dbs = $modDb->getMysqlServerDBs($mysql_server_id); if(!empty($mysql_dbs)) { foreach($mysql_dbs as $mysql_db) { if($mysql_server['remote_server_id'] != "0") { $remote_server = $db->getRemoteServer($mysql_server['remote_server_id']); $remote = new OGPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key'],$remote_server['timeout']); $host_stat = $remote->status_chk(); if($host_stat === 1 ) { $remote->exec('mysql --host=localhost --port='.$mysql_server['mysql_port'].' -uroot -p'.$mysql_server['mysql_root_passwd']. ' -e "DROP DATABASE '.$mysql_db['db_name'].";DROP USER '".$mysql_db['db_user']."'@'%';\""); } } else { if( function_exists('mysqli_connect') ) { @$link = mysqli_connect($mysql_server['mysql_ip'], 'root', $mysql_server['mysql_root_passwd'], "", $mysql_server['mysql_port']); if ( $link !== FALSE ) { $queries = array("DROP DATABASE ".$mysql_db['db_name'].";", "DROP USER '".$mysql_db['db_user']."'@'%';"); foreach( $queries as $query ) { @$return = mysqli_query($query); if(!$return) break; } mysqli_close($link); } } else { @$link = mysql_connect($mysql_server['mysql_ip'].':'.$mysql_server['mysql_port'], 'root', $mysql_server['mysql_root_passwd']); if ( $link !== FALSE ) { $queries = array("DROP DATABASE ".$mysql_db['db_name'].";", "DROP USER '".$mysql_db['db_user']."'@'%';"); foreach( $queries as $query ) { @$return = mysql_query($query); if(!$return) break; } mysql_close($link); } } } } } if ( $modDb->removeMysqlServer($mysql_server_id) === FALSE ) print_failure(get_lang('error_while_remove')); else print_success(get_lang_f('mysql_server_removed',$mysql_server['mysql_name'])); } $view->refresh("?m=mysql&p=mysql_admin"); return; } else if ( isset($_POST['save_settings']) ) { foreach ($_POST as $name => $value) { $get[$name] = trim($value); } if ( empty($get['mysql_ip']) ){ print_failure(get_lang('enter_mysql_ip')); } elseif ( !isPortValid($get['mysql_port']) ){ print_failure(get_lang('enter_valid_port')); } elseif ( empty($get['mysql_root_passwd']) ){ print_failure(get_lang('enter_mysql_root_password')); } elseif ( empty($get['mysql_name']) ){ print_failure(get_lang('enter_mysql_name')); } elseif(!$modDb->editMysqlServer($mysql_server_id,$get['remote_server_id'],$get['mysql_name'],$get['mysql_ip'],$get['mysql_port'],$get['mysql_root_passwd'],$mysql_server['privilegies_str'])) print_failure(get_lang_f('unable_to_set_changes_to',$mysql_server['mysql_name'])); else print_success(get_lang_f('mysql_server_settings_changed',$mysql_server['mysql_name'])); $view->refresh("?m=mysql&p=mysql_admin&p=edit&mysql_server_id=".$mysql_server_id."&edit",5); } elseif ( isset($_GET['edit']) ) { echo "