function exec_ogp_module() { global $db, $view, $settings; if (!isset($_SESSION)) { session_start(); } if (isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) > 0) { $errmsg = '<table>'; foreach ($_SESSION['ERRMSG_ARR'] as $msg) { $errmsg .= "<tr><td><img width='8px' src='images/offline.png'/></td><td style='text-align:left;color:red;'>" . $msg . '</td></tr>'; } $errmsg .= '</table><br>'; unset($_SESSION['ERRMSG_ARR']); } echo "<h2>" . get_lang('user_registration') . "</h2>"; if (isset($errmsg)) { echo $errmsg; $input = $_SESSION['INPUT']; } $lang_switch = (isset($_GET['lang']) and $_GET['lang'] != "-") ? "&lang=" . $_GET['lang'] : ""; ?> <style> .left { margin-left:auto; margin-right:auto; text-align:left; } .right { margin-left:auto; margin-right:auto; text-align:right; } </style> <?php require_once 'includes/form_table_class.php'; $ft = new FormTable(); $ft->start_form("?m=register&p=exec{$lang_switch}", "post", "name=\"loginForm\""); $ft->start_table(); $ft->add_field('string', 'login_name', @$input['users_login']); $ft->add_field('password', 'users_passwd', ''); $ft->add_field('password', 'users_cpasswd', ''); $ft->add_field('string', 'users_fname', @$input['users_fname']); $ft->add_field('string', 'users_lname', @$input['users_lname']); $ft->add_field('string', 'users_email', @$input['users_email']); $ft->add_field_hidden('users_comment', get_lang_f('registered_on', date("d/m/Y"))); echo "<tr><td> </td><td>"; require_once 'recaptchalib.php'; require_once 'captchakeys.php'; $use_ssl = isset($_SERVER['HTTPS']) ? true : false; echo recaptcha_get_html($publickey, null, $use_ssl); echo "</td></tr>"; $ft->end_table(); $ft->add_button("submit", "Submit", get_lang('register_a_new_user')); $ft->end_form(); }
function exec_ogp_module() { global $db; $home_id = $_REQUEST['home_id']; $server_row = $db->getGameHomeWithoutMods($home_id); if (empty($server_row)) { print_failure(get_lang('invalid_home_id')); return; } echo "<h2>" . get_lang_f('cloning_home', $server_row['home_name']) . "</h2>"; echo create_back_button('user_games'); include 'includes/lib_remote.php'; $remote = new OGPRemoteLibrary($server_row['agent_ip'], $server_row['agent_port'], $server_row['encryption_key']); if (isset($_REQUEST['clone_home'])) { $server_name = $_POST['new_home_name']; $user_group = $_POST['user_group']; $clone_home_id = $db->addGameHome($server_row['remote_server_id'], $server_row['user_id_main'], $server_row['home_cfg_id'], "/home/" . $server_row['ogp_user'] . "/OGP_User_Files/", $server_name, '', genRandomString(8)); $server_path = "/home/" . $server_row['ogp_user'] . "/OGP_User_Files/" . $clone_home_id; if ($clone_home_id === FALSE) { print_failure(get_lang_f('cloning_of_home_failed', $home_id)); return; } if (isset($_REQUEST['clone_mods'])) { $enabled_mods = $db->getHomeMods($home_id); if (empty($enabled_mods)) { print_failure(get_lang('note') . ": " . get_lang('no_mods_to_clone')); } else { foreach ($enabled_mods as $enabled_rows) { if ($db->addModToGameHome($clone_home_id, $enabled_rows['mod_cfg_id']) === FALSE) { print_failure(get_lang_f('failed_to_add_mod', $enabled_rows['mod_cfg'], $clone_home_id)); return; } if ($db->updateGameModParams($enabled_rows['max_players'], $enabled_rows['extra_params'], $enabled_rows['cpu_affinity'], $enabled_rows['nice'], $clone_home_id, $enabled_rows['mod_cfg_id']) === FALSE) { print_failure(get_lang_f('failed_to_update_mod_settings', $clone_home_id)); return; } } print_success(get_lang_f('successfully_cloned_mods', $clone_home_id)); } } print_success(get_lang('successfully_copied_home_database')); # do the remote copy call here echo "<p>" . get_lang_f('copying_home_remotely', $server_row['home_path'], $server_path) . "</p>"; $db->logger(get_lang_f('copying_home_remotely', $server_row['home_path'], $server_path)); $clone_rc = $remote->clone_home($server_row['home_path'], $server_path, $user_group); if ($clone_rc == -1) { print_success(get_lang('game_server_copy_is_running')); ?> <div class="html5-progress-bar"> <progress id="progressbar" value="0" max="100"></progress> <span class="progress-value">0%</span> </div> <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $.get( "home.php?m=user_games&type=cleared&p=get_size&home_id=<?php echo $home_id; ?> &bytes", function( orig_data ) { var orig_size = parseInt(orig_data,10); var refreshId = setInterval(function() { $.get( "home.php?m=user_games&type=cleared&p=get_size&home_id=<?php echo $clone_home_id; ?> &bytes", function( dest_data ) { var dest_size = parseInt(dest_data,10); var progress = parseInt(dest_size * 100 / orig_size); $('#progressbar').val(progress); $('.progress-value').html(progress + '%'); if(progress == 100) { clearInterval(refreshId); } }); }, 2000); }); }); </script> <?php } elseif ($clone_rc == 1) { print_success(get_lang('game_server_copy_was_successful')); } else { print_failure(get_lang_f('game_server_copy_failed_with_return_code', $clone_rc)); } echo "<br><a href='home.php?m=user_games'><< " . get_lang('back_to_game_servers') . "</a>"; return; } // Form to edit game path. $avail_mods = $db->getHomeMods($home_id); $read_status = $remote->remote_readfile('/etc/passwd', $passwd_array); if ($read_status === -1) { print_failure(get_lang('agent_offline')); return; } else { if ($read_status == 1) { $passwd_array = preg_split("/\n/", $passwd_array); } } require_once "includes/form_table_class.php"; $ft = new FormTable(); $ft->start_form('?m=user_games&p=clone'); $ft->add_field_hidden('home_id', $home_id); $ft->start_table(); $ft->add_custom_field('agent_ip', $server_row['agent_ip']); $ft->add_custom_field('current_home_path', $server_row['home_path']); $ft->add_field('string', 'new_home_name', $server_row['home_name']); echo "<tr><td class='right'>" . get_lang('clone_mods') . ":</td>\n\t\t<td class='left'><input type='checkbox' name='clone_mods' value='y' /></td></tr>"; echo "<input name='user_group' type='hidden' value='" . get_user_uid_gid_from_passwd($passwd_array, $server_row['ogp_user']) . "' /></tr>"; echo "</table>"; $ft->add_button('submit', 'clone_home', get_lang('clone_home')); echo "<p class='info'>" . get_lang('the_name_of_the_server_to_help_users_to_identify_it') . "</p>"; echo "</form>"; echo "<h3>" . get_lang('ips_and_ports_used_in_this_home') . "</h3>"; echo "<p>" . get_lang('note_ips_and_ports_are_not_cloned') . "</p>"; $assigned = $db->getHomeIpPorts($home_id); if (!empty($assigned)) { foreach ($assigned as $assigned_rows) { echo "<p>" . $assigned_rows['ip'] . ":" . $assigned_rows['port'] . "</p>\n"; } } $enabled_mods = $db->getHomeMods($home_id); echo "<h3>" . get_lang('mods_and_settings_for_this_game_server') . "</h3>"; if (empty($enabled_mods)) { print_failure(get_lang('note') . ": " . get_lang('note_no_mods')); return; } echo "<table class='center'>\n"; echo "<tr><td>" . get_lang('mod_name') . "</td><td>" . get_lang('max_players') . "</td><td>" . get_lang('extra_cmd_line_args') . "</td><td>" . get_lang('cpu_affinity') . "</td><td>" . get_lang('nice_level') . "</td></tr>\n"; foreach ($enabled_mods as $enabled_rows) { echo "<tr>"; echo "<td>" . $enabled_rows['mod_name'] . "</td>"; echo "<td>" . $enabled_rows['max_players'] . "</td>"; echo "<td>" . $enabled_rows['extra_params'] . "</td>"; echo "<td>" . $enabled_rows['cpu_affinity'] . "</td>"; echo "<td>" . $enabled_rows['nice'] . "</td></tr>\n"; } echo "</table>\n"; }
function exec_ogp_module() { $modDb = new MySQLModuleDatabase(); require "includes/config.inc.php"; $modDb->connect($db_host, $db_user, $db_pass, $db_name, $table_prefix); global $view, $db; echo "<h2>" . get_lang('add_new_mysql_host') . "</h2>"; if (isset($_GET['add_mysql_server'])) { foreach ($_GET as $name => $value) { $get[$name] = trim($value); } if (empty($get['mysql_ip'])) { print_failure(get_lang('enter_mysql_ip')); } if (!isPortValid($get['mysql_port'])) { print_failure(get_lang('enter_valid_port')); } if (empty($get['mysql_root_passwd'])) { print_failure(get_lang('enter_mysql_root_password')); } if (empty($get['mysql_name'])) { print_failure(get_lang('enter_mysql_name')); } if ($get['privilegies'] == "custom") { $priv = $get; $privilegies_str = ""; unset($priv['m'], $priv['p'], $priv['remote_server_id'], $priv['mysql_ip'], $priv['mysql_port'], $priv['mysql_root_passwd'], $priv['mysql_name'], $priv['privilegies'], $priv['add_mysql_server']); foreach ($priv as $name => $value) { $privilegies_str .= str_replace("_", " ", $name) . ", "; } } else { $privilegies_str = "ALL"; } $privilegies_str = rtrim($privilegies_str, ', '); $mysql_server_id = $modDb->addMysqlServer($get['remote_server_id'], $get['mysql_name'], $get['mysql_ip'], $get['mysql_port'], $get['mysql_root_passwd'], $privilegies_str); if (!$mysql_server_id) { print_failure(get_lang('could_not_add_mysql_server')); $view->refresh("?m=mysql&p=mysql_admin"); return; } print_success(get_lang('server_added')); $view->refresh("?m=mysql&p=mysql_admin"); return; } echo "<p>" . get_lang('note_mysql_host') . "</p>"; $servers = $db->getRemoteServers(); $conn_method[0] = get_lang('direct_connection'); foreach ($servers as $server_row) { $id = $server_row['remote_server_id']; $name = get_lang_f('connection_through_remote_server_named', $server_row['remote_server_name']); $conn_method[$id] = $name; } require_once "includes/form_table_class.php"; $ft = new FormTable(); $ft->start_form("", "GET"); $ft->start_table(); $ft->add_field_hidden('m', 'mysql'); $ft->add_field_hidden('p', 'mysql_admin'); $ft->add_custom_field('connection_method', create_drop_box_from_array($conn_method, "remote_server_id", "0", false)); $ft->add_field('string', 'mysql_name', isset($_GET['mysql_name']) ? $_GET['mysql_name'] : ""); $ft->add_field('string', 'mysql_ip', isset($_GET['mysql_ip']) ? $_GET['mysql_ip'] : "localhost"); $ft->add_field('string', 'mysql_port', isset($_GET['mysql_port']) ? $_GET['mysql_port'] : "3306"); $ft->add_field('string', 'mysql_root_passwd', isset($_GET['mysql_root_passwd']) ? $_GET['mysql_root_passwd'] : ""); $ft->add_custom_field('privilegies', create_drop_box_from_array(array('all' => get_lang('all'), 'custom' => get_lang('custom')), "privilegies", isset($_GET['privilegies']) ? $_GET['privilegies'] : "all", false)); if (isset($_GET['privilegies']) and $_GET['privilegies'] == "custom") { $ft->add_custom_field('alter', '<input type="checkbox" name="ALTER" checked="checked" >'); $ft->add_custom_field('create', '<input type="checkbox" name="CREATE" checked="checked" >'); $ft->add_custom_field('create_temporary_tables', '<input type="checkbox" name="CREATE TEMPORARY TABLES" checked="checked" >'); $ft->add_custom_field('delete', '<input type="checkbox" name="DELETE" checked="checked" >'); $ft->add_custom_field('drop', '<input type="checkbox" name="DROP" checked="checked" >'); $ft->add_custom_field('index', '<input type="checkbox" name="INDEX" checked="checked" >'); $ft->add_custom_field('insert', '<input type="checkbox" name="INSERT" checked="checked" >'); $ft->add_custom_field('lock_tables', '<input type="checkbox" name="LOCK TABLES" checked="checked" >'); $ft->add_custom_field('select', '<input type="checkbox" name="SELECT" checked="checked" >'); $ft->add_custom_field('update', '<input type="checkbox" name="UPDATE" checked="checked" >'); $ft->add_custom_field('grant_option', '<input type="checkbox" name="GRANT OPTION" checked="checked" >'); } $ft->end_table(); $ft->add_button("submit", "add_mysql_server", get_lang('add_mysql_server')); $ft->end_form(); $mysql_servers = $modDb->getMysqlServers(); if ($mysql_servers === FALSE) { return; } $tr = 0; ?> <table id="servermonitor" class="tablesorter remote"> <thead> <tr> <th colspan="4" ><?php print_lang('configured_mysql_hosts'); ?> </th> </tr> </thead> <tbody> <?php foreach ($mysql_servers as $mysql_server) { 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']); $host_stat = $remote->status_chk(); if ($host_stat === 0) { $server_status = "<span class='failure'>" . get_lang('offline') . "</span> "; } elseif ($host_stat === 1) { $server_status = "<span class='success'>" . get_lang('online') . "</span>"; $command = "mysql -h " . $mysql_server['mysql_ip'] . " -P " . $mysql_server['mysql_port'] . " -u root -p" . $mysql_server['mysql_root_passwd'] . ' -e exit; echo $?'; $test_mysql_conn = $remote->exec($command); if ($test_mysql_conn == 0) { $server_status .= " / <span class='success'>" . get_lang('mysql_online') . "</span>"; } else { $server_status .= "/<span class='failure'>" . get_lang('mysql_offline') . "</span>"; } } elseif ($host_stat === -1) { $server_status = "<span class='failure'>" . get_lang('encryption_key_mismatch') . "</span>\n"; } else { $server_status = "<span class='failure'>" . get_lang('unknown_error') . ": {$host_stat}</span>\n"; } } else { @($link = mysql_connect($mysql_server['mysql_ip'] . ':' . $mysql_server['mysql_port'], 'root', $mysql_server['mysql_root_passwd'])); if ($link === FALSE) { $server_status = "<span class='failure'>" . get_lang('mysql_offline') . "</span>"; } else { $server_status = "<span class='success'>" . get_lang('mysql_online') . "</span>"; mysql_close($link); } } $databases = ""; $mysql_server_dbs = $modDb->getMysqlServerDBs($mysql_server['mysql_server_id']); if (!empty($mysql_server_dbs)) { foreach ($mysql_server_dbs as $mysql_db) { $databases .= $mysql_db['db_name'] . "<a href='?m=mysql&p=edit&mysql_server_id=" . $mysql_server['mysql_server_id'] . "&assign=true&db_id=" . $mysql_db['db_id'] . "&edit_db_settings'>[" . get_lang('edit') . "]</a>\n" . "<a href='?m=mysql&p=edit&mysql_server_id=" . $mysql_server['mysql_server_id'] . "&assign=true&db_id=" . $mysql_db['db_id'] . "&remove_db'>[" . get_lang('remove') . "]</a>\n" . "<br>"; } } $conection_type = $mysql_server['remote_server_id'] == 0 ? get_lang('direct_connection') : get_lang_f('connection_through_remote_server_named', $remote_server['remote_server_name']); $buttons = "<a href='?m=mysql&p=edit&mysql_server_id=" . $mysql_server['mysql_server_id'] . "&delete'>[" . get_lang('remove') . "]</a>\n" . "<a href='?m=mysql&p=edit&mysql_server_id=" . $mysql_server['mysql_server_id'] . "&edit'>[" . get_lang('edit') . "]</a>\n" . "<a href='?m=mysql&p=edit&mysql_server_id=" . $mysql_server['mysql_server_id'] . "&assign'>[" . get_lang('assign_db') . "]</a>\n"; $tittle = "<b>ID#:</b> <b style='color:red;'>" . $mysql_server['mysql_server_id'] . "</b></td>\n\t\t\t\t\t<td class='collapsible' ><b>" . get_lang('mysql_server_name') . ":</b> " . $mysql_server['mysql_name'] . "</td>\n\t\t\t\t\t<td class='collapsible' ><b>" . get_lang('server_status') . ":</b>{$server_status}</td>"; $data = "<tr class='expand-child' >\n\t\t\t\t <td>\n\t\t\t\t\t<b>" . get_lang('mysql_ip_port') . ":</b> " . $mysql_server['mysql_ip'] . ":" . $mysql_server['mysql_port'] . "<br />\n\t\t\t\t\t<b>" . get_lang('mysql_root_passwd') . ":</b> " . $mysql_server['mysql_root_passwd'] . "<br />\n\t\t\t\t\t<b>" . get_lang('connection_method') . ":</b> " . $conection_type . "<br />\n\t\t\t\t\t<b>" . get_lang('user_privilegies') . ":</b> " . $mysql_server['privilegies_str'] . "<br />\n\t\t\t\t </td>\n\t\t\t\t <td>\n\t\t\t\t <b>" . get_lang('current_dbs') . ":</b><br />" . $databases . "</td>\n\t\t\t\t <td>\n\t\t\t\t {$buttons}\n\t\t\t\t </td>\n\t\t\t\t </tr>"; // Template $first = "<tr class='maintr'><td class='collapsible' >{$tittle}</td></tr>"; $second = $data; //Echo them all echo "{$first}{$second}"; } echo "</tbody>"; echo "</table>\n"; ?> <script type="text/javascript"> $(document).ready(function(){ $("#servermonitor") .collapsible("td.collapsible", {collapse: true}) .tablesorter({sortList: [[0,0], [1,0]] , widgets: ['zebra','repeatHeaders']}); }); </script> <?php unset($modDb); }
function exec_ogp_module() { $modDb = new MySQLModuleDatabase(); require "includes/config.inc.php"; $modDb->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']); $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'] . "'@'localhost' 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 { @($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'] . "'@'" . $mysql_db['mysql_ip'] . "' 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']); $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'] . "'@'" . $mysql_db['mysql_ip'] . "';\""); } } 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'] . "'@'" . $mysql_db['mysql_ip'] . "';"); 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']); $host_stat = $remote->status_chk(); if ($host_stat === 1) { $SQL = "DROP USER '" . $mysql_db['db_user'] . "'@'" . $mysql_server['mysql_ip'] . "';" . "GRANT " . $mysql_db['privilegies_str'] . " ON \\`" . $mysql_db['db_name'] . "\\`.* TO '" . $mysql_db['db_user'] . "'@'localhost' 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 { @($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'] . "'@'" . $mysql_server['mysql_ip'] . "';", "GRANT " . $mysql_db['privilegies_str'] . " ON `" . $mysql_db['db_name'] . "`.* TO '" . $mysql_db['db_user'] . "'@'" . $mysql_db['mysql_ip'] . "' 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']); $host_stat = $remote->status_chk(); if ($host_stat === 1) { if ($enabled == "0") { $SQL = "DROP USER '" . $mysql_db['db_user'] . "'@'" . $mysql_server['mysql_ip'] . "';" . "FLUSH PRIVILEGES;"; } else { $SQL = "GRANT " . $mysql_db['privilegies_str'] . " ON \\`" . $mysql_db['db_name'] . "\\`.* TO '" . $mysql_db['db_user'] . "'@'localhost' 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 { @($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'] . "'@'" . $mysql_server['mysql_ip'] . "';", "FLUSH PRIVILEGES;"); } else { $queries = array("GRANT " . $mysql_db['privilegies_str'] . " ON `" . $mysql_db['db_name'] . "`.* TO '" . $mysql_db['db_user'] . "'@'" . $mysql_db['mysql_ip'] . "' 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 "<p>" . get_lang_f('areyousure_remove_mysql_server', $mysql_server['mysql_name']) . "</p>\n <p><a href='?m=mysql&p=mysql_admin&p=edit&mysql_server_id=" . $mysql_server_id . "&delete&y=y'>" . get_lang('yes') . "</a> <a href='?m=mysql&p=mysql_admin'>" . get_lang('no') . "</a></p>"; 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']); $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'] . "'@'" . $mysql_server['mysql_ip'] . "';\""); } } 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'] . "'@'" . $mysql_server['mysql_ip'] . "';"); 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 "<h2>" . get_lang_f('editing_mysql_server', $mysql_server['mysql_name']) . "</h2>"; $mysql_server = $modDb->getMysqlServer($mysql_server_id); $servers = $db->getRemoteServers(); $conn_method[0] = get_lang('direct_connection'); foreach ($servers as $server_row) { $id = $server_row['remote_server_id']; $name = get_lang_f('connection_through_remote_server_named', $server_row['remote_server_name']); $conn_method[$id] = $name; } $ft = new FormTable(); $ft->start_form('?m=mysql&p=edit&mysql_server_id=' . $mysql_server_id . '&edit'); $ft->start_table(); $ft->add_custom_field('connection_method', create_drop_box_from_array($conn_method, "remote_server_id", $mysql_server['remote_server_id'], false)); $ft->add_field('string', 'mysql_name', $mysql_server['mysql_name']); $ft->add_field('string', 'mysql_ip', $mysql_server['mysql_ip']); $ft->add_field('string', 'mysql_port', $mysql_server['mysql_port']); $ft->add_field('string', 'mysql_root_passwd', $mysql_server['mysql_root_passwd']); $ft->end_table(); $ft->add_button("submit", "save_settings", get_lang('save_settings')); $ft->end_form(); echo create_back_button('mysql', 'mysql_admin'); } elseif (isset($_GET['assign'])) { echo "<h2>" . get_lang_f('mysql_dbs_for', $mysql_server['mysql_name']) . "</h2>"; $mysql_server_dbs = $modDb->getMysqlServerDBs($mysql_server['mysql_server_id']); if (!empty($mysql_server_dbs)) { echo "<h4>" . get_lang('edit_dbs') . "</h4>"; foreach ($mysql_server_dbs as $mysql_db) { $home_info = $db->getGameHomeWithoutMods($mysql_db['home_id']); $db_array["{$mysql_db['db_id']}"] = $mysql_db['db_name'] . " (" . $home_info['home_name'] . ")"; } $ft = new FormTable(); $ft->start_form('', 'GET'); $ft->add_field_hidden('m', 'mysql'); $ft->add_field_hidden('p', 'edit'); $ft->add_field_hidden('mysql_server_id', $mysql_server_id); $ft->add_field_hidden('assign', 'true'); $ft->start_table(); $ft->add_custom_field('select_db', create_drop_box_from_array($db_array, "db_id", isset($_GET['db_id']) ? $_GET['db_id'] : "", false)); $ft->end_table(); $ft->add_button('submit', 'edit_db_settings', get_lang('edit_db_settings')); $ft->add_button('submit', 'remove_db', get_lang('remove_db')); $ft->end_form(); if (isset($_GET['edit_db_settings'])) { $mysql_db = $modDb->getMysqlDBbyId($_GET['db_id']); $ft = new FormTable(); $ft->start_form(''); $ft->add_field_hidden('db_id', $mysql_db['db_id']); $ft->start_table(); $ft->add_custom_field('game_server', create_drop_box_from_array($homes_array, "home_id", $mysql_db['home_id'], false)); $ft->add_field('string', 'db_user', $mysql_db['db_user'], "50", "readonly"); $ft->add_field('string', 'db_passwd', $mysql_db['db_passwd']); $ft->add_field('string', 'db_name', $mysql_db['db_name'], "50", "readonly"); $ft->add_field('on_off', 'enabled', $mysql_db['enabled']); $ft->end_table(); $ft->add_button('submit', 'save_db_changes', get_lang('save_db_changes')); $ft->end_form(); } } echo "<h4>" . get_lang('add_db') . "</h4>"; $ft = new FormTable(); $ft->start_form(''); $ft->start_table(); $ft->add_custom_field('game_server', create_drop_box_from_array($homes_array, "home_id", "0", false)); $ft->add_field('string', 'db_user', ''); $ft->add_field('string', 'db_passwd', genRandomString('10')); $ft->add_field('string', 'db_name', ''); $ft->add_field('on_off', 'enabled', '1'); $ft->end_table(); $ft->add_button('submit', 'add_db', get_lang('add_db')); $ft->end_form(); echo create_back_button('mysql', 'mysql_admin'); } else { print_failure("Invalid url."); $view->refresh("?m=mysql&p=mysql_admin"); } } } } } }
function exec_ogp_module() { global $db, $settings; $my_user_id = $_SESSION['user_id']; #who we're logged in as $user_id = $_REQUEST['user_id']; $isAdmin = $db->isAdmin($my_user_id); $mySubUsersAssoc = $db->listSubUsersByParent($my_user_id); if ($mySubUsersAssoc) { foreach ($mySubUsersAssoc as $subuser) { $mySubUsers[] = $subuser['user_id']; } } // Check that we are admin or the user itself. if (!isset($user_id)) { print_failure("Error in parameters."); return; } else { if (!$isAdmin && $my_user_id !== $user_id && @(!in_array($user_id, $mySubUsers))) { print_failure(get_lang('no_rights')); return; } } if ($isAdmin) { $users = $db->getUserList(); foreach ($users as $user) { if ($db->isAdmin($user['user_id'])) { $first_admin_id = $user['user_id']; break; } } if ($db->isAdmin($user_id) and $first_admin_id != $my_user_id and $user_id != $my_user_id) { print_failure(get_lang('no_rights')); return; } } echo "<h2>" . get_lang('your_profile') . "</h2>"; echo "<div align='center'>"; require_once "includes/form_table_class.php"; if ((isset($_POST['new_password']) || isset($_POST['retype_new_password'])) && $_POST['new_password'] !== $_POST['retype_new_password']) { print_failure(get_lang('password_mismatch')); } elseif (isset($_POST['edit_user']) && $my_user_id === $user_id && !$db->is_valid_login($my_user_id, $_REQUEST['current_password'])) { print_failure(get_lang('current_password_mismatch')); } else { if (isset($_POST['edit_user'])) { $user_id = $_POST['user_id']; $newlang = $_POST['newlang']; $login = $_POST['login']; $login = str_replace('"', '', $login); $login = str_replace("'", "", $login); $firstname = $_POST['first_name']; $firstname = str_replace('"', '', $firstname); $firstname = str_replace("'", "", $firstname); $lastname = $_POST['last_name']; $lastname = str_replace('"', '', $lastname); $lastname = str_replace("'", "", $lastname); $email = $_POST['email_address']; $city = $_POST['city']; $province = $_POST['province']; $country = $_POST['country']; $phone = $_POST['phone_number']; $phone = preg_replace("/[^0-9]/", "", $phone); $theme = $_POST['theme']; // OGP needs to set the new theme and language in the current session, only if I'm modifying my own user profile. if ($my_user_id == $user_id) { $_SESSION['users_theme'] = $theme; $_SESSION['users_lang'] = $newlang; } $fields['users_lang'] = $_POST['newlang']; $fields['users_fname'] = $firstname; $fields['users_lname'] = $lastname; $fields['users_phone'] = $phone; $fields['users_city'] = $city; $fields['users_province'] = $province; $fields['users_country'] = $country; if (isset($settings['editable_email'])) { if ($settings['editable_email'] == "1" or $settings['editable_email'] == "0" and $isAdmin) { $fields['users_email'] = $email; } } elseif (!isset($settings['editable_email'])) { $fields['users_email'] = $email; } if ($isAdmin) { $comment = $_POST['comment']; $mins = $_POST['minutes']; $hours = $_POST['hours']; $months = $_POST['month']; $days = $_POST['days']; $years = $_POST['years']; if ($months == 'X' || $days == 'X' || $years == 'X' || $hours == 'X' || $mins == 'X') { $expire_timestamp = "X"; } else { $expire_timestamp = mktime($hours, $mins, 0, $months, $days, $years, -1); } $fields['users_comment'] = $comment; $fields['user_expires'] = $expire_timestamp; $fields['users_login'] = $login; } if (empty($theme)) { $fields['users_theme'] = NULL; } else { $fields['users_theme'] = $theme; } if (isset($_POST['new_password']) && !empty($_POST['new_password'])) { $fields['users_passwd'] = md5($_POST['new_password']); } if (!$db->editUser($fields, $user_id)) { print_failure(get_lang_f('failed_to_update_user_profile_error', $db->getError())); } else { print_success(get_lang_f('profile_of_user_modified_successfully', $login)); $db->logger(get_lang_f('profile_of_user_modified_successfully', $login)); } global $view; if ($isAdmin) { $view->refresh("?m=user_admin"); } else { if (isset($_SESSION['REFER'])) { $view->refresh($_SESSION['REFER']); } else { $view->refresh("?m=user_admin&p=edit_user&user_id=" . $_SESSION['user_id']); } } return; } } $userInfo = $db->getUserById($user_id); $ft = new FormTable(); $ft->start_form('?m=user_admin&p=edit_user'); $ft->add_field_hidden('user_id', $user_id); $ft->start_table(); $login_option = !$isAdmin ? 'readonly="readonly"' : ""; $ft->add_field('string', 'login', $userInfo['users_login'], 50, $login_option); if ($my_user_id === $user_id) { $ft->add_field('password', 'current_password', ''); } $ft->add_field('password', 'new_password', ''); $ft->add_field('password', 'retype_new_password', ''); $locale_files = makefilelist("lang/", ".|..|.svn", true, "folders"); array_push($locale_files, "-"); sort($locale_files); $ft->add_custom_field('language', create_drop_box_from_array($locale_files, "newlang", @$userInfo['users_lang'])); require_once 'modules/settings/functions.php'; $theme = ""; $add_empty = FALSE; if (isset($userInfo['users_theme'])) { $theme = $userInfo['users_theme']; $add_empty = TRUE; } $ft->add_custom_field('theme', get_theme_html_str($theme, $add_empty)); $ft->add_field('string', 'first_name', $userInfo['users_fname']); $ft->add_field('string', 'last_name', $userInfo['users_lname']); $ft->add_field('string', 'phone_number', $userInfo['users_phone']); $email_option = (!$isAdmin and isset($settings['editable_email']) and $settings['editable_email'] == "0") ? 'readonly="readonly"' : ""; $ft->add_field('string', 'email_address', $userInfo['users_email'], 50, $email_option); $ft->add_field('string', 'city', $userInfo['users_city']); $ft->add_field('string', 'province', $userInfo['users_province']); $ft->add_field('string', 'country', $userInfo['users_country']); if ($isAdmin) { $ft->add_field('text', 'comment', $userInfo['users_comment']); ?> <tr> <td align='right'><?php print_lang('expires'); ?> :</td> <?php $timediff = $userInfo["user_expires"]; //echo "Timediff is $timediff<br>"; if (read_expire($timediff) !== 'X') { $exday = date("j", $timediff); $exyear = date("Y", $timediff); $exmonth = date("m", $timediff); $exhour = date("H", $timediff); $exmin = date("i", $timediff); } else { $exday = "X"; $exyear = "X"; $exmonth = "X"; $exhour = "X"; $exmin = "X"; } $minutes = range(0, 59); $pad_length = 2; foreach ($minutes as &$minute) { $minute = str_pad($minute, $pad_length, "0", STR_PAD_LEFT); } $months = array('X' => 'X', '1' => 'Jan', '2' => 'Feb', '3' => 'Mar', '4' => 'Apr', '5' => 'May', '6' => 'Jun', '7' => 'July', '8' => 'Aug', '9' => 'Sep', '10' => 'Oct', '11' => 'Nov', '12' => 'Dec'); #The ugliness below is to populate the expiration fields with what is in the db #Looks bad, but it works well echo "<td align='left'>"; $x_array = array('X'); echo create_drop_box_from_array(array_merge($x_array, range(1, 31)), "days", $exday, true); echo create_drop_box_from_array($months, "month", $exmonth, false); echo create_drop_box_from_array(array_merge($x_array, range(date('Y') - 1, date('Y') + 10)), "years", $exyear, true); echo " - "; echo create_drop_box_from_array(array_merge($x_array, range(0, 23)), "hours", $exhour, true); echo ":"; echo create_drop_box_from_array(array_merge($x_array, $minutes), "minutes", $exmin, true); echo "<tr><td colspan='2' class='info'>" . get_lang('expires_info') . "</td></tr>"; } $ft->end_table(); $ft->add_button("submit", "edit_user", get_lang('save_profile')); $ft->end_form(); echo "</div>"; }
function exec_ogp_module() { global $view; global $db; $rhost_id = @$_REQUEST['rhost_id']; $remote_server = $db->getRemoteServer($rhost_id); if ($remote_server === FALSE) { print_failure(get_lang_f('invalid_remote_host_id', $rhost_id)); $view->refresh("?m=server"); return; } echo "<h2>" . get_lang_f('editing_remote_server', $remote_server['remote_server_name']) . "</h2>"; #this allows you to define upto 4 IPs for each remote host. The IPs are for binding games to if (isset($_REQUEST['add_ip'])) { $remote_ip = $_POST['remote_ip']; $remote_ip = preg_replace("/[^0-9\\.]/", "", $remote_ip); if ($db->addRemoteServerIp($rhost_id, $remote_ip) === FALSE) { print_failure(get_lang('could_not_add_ip')); } else { print_success(get_lang_f('ips_set_for_server', $remote_server['remote_server_name'])); } $view->refresh("?m=server&p=edit&rhost_id=" . $rhost_id . "&edit"); } else { if (isset($_REQUEST['remove_ip'])) { $ip_id = $_POST['ip_id']; if ($db->removeRemoteServerIps($ip_id) === FALSE) { print_failure(get_lang('could_not_remove_ip')); } else { print_success(get_lang_f('ips_set_for_server', $remote_server['remote_server_name'])); } $view->refresh("?m=server&p=edit&rhost_id=" . $rhost_id . "&edit"); } else { if (isset($_REQUEST['edit_ip'])) { $ip_id = $_POST['ip_id']; $ip = $_POST['ip']; $ip = preg_replace("/[^0-9\\.]/", "", $ip); if ($db->editRemoteServerIps($ip_id, $ip) === FALSE) { print_failure(get_lang('could_not_edit_ip')); } else { print_success(get_lang_f('ips_set_for_server', $remote_server['remote_server_name'])); } $view->refresh("?m=server&p=edit&rhost_id=" . $rhost_id . "&edit"); } else { if (isset($_REQUEST['delete'])) { if (!isset($_REQUEST['y'])) { echo "<p>" . get_lang('areyousure_removeagent') . " <b>\"" . $remote_server['remote_server_name'] . "\"</b> " . get_lang('areyousure_removeagent2') . "</p>\n <p><a href='?m=server&p=edit&rhost_id=" . $rhost_id . "&delete&y=y'>" . get_lang('yes') . "</a> <a href='?m=server'>" . get_lang('no') . "</a></p>"; return; } else { if ($db->removeRemoteServer($rhost_id) === FALSE) { print_failure(get_lang('error_while_remove')); } else { print_success(get_lang_f('remote_host_removed', $remote_server['remote_server_name'])); } } $view->refresh("?m=server"); return; } else { if (isset($_REQUEST['save_settings'])) { $db->changeRemoteServerSettings($remote_server['remote_server_id'], $_REQUEST['remote_host'], $_REQUEST['remote_host_port'], $_REQUEST['remote_host_name'], $_REQUEST['ogp_user'], $_REQUEST['remote_host_ftp_ip'], $_REQUEST['remote_host_ftp_port'], $_REQUEST['remote_encryption_key'], $_REQUEST['timeout'], $_REQUEST['use_nat']); print_success(get_lang_f('remote_server_settings_changed', $remote_server['remote_server_name'])); $view->refresh("?m=server&p=edit&rhost_id=" . $rhost_id . "&edit"); } } } } } if (isset($_REQUEST['edit'])) { $remote_server = $db->getRemoteServer($rhost_id); $ftp_ip = empty($remote_server['ftp_ip']) ? $remote_server['agent_ip'] : $remote_server['ftp_ip']; require_once 'includes/form_table_class.php'; $ft = new FormTable(); $ft->start_form('?m=server&p=edit&rhost_id=' . $rhost_id . '&edit'); $ft->add_field_hidden('rhost_id', $remote_server['remote_server_id']); $ft->start_table(); $ft->add_field('string', 'remote_host', $remote_server['agent_ip']); $ft->add_field('string', 'remote_host_port', $remote_server['agent_port']); $ft->add_field('string', 'remote_host_name', $remote_server['remote_server_name']); $ft->add_field('string', 'ogp_user', $remote_server['ogp_user']); $ft->add_field('string', 'remote_host_ftp_ip', $ftp_ip); $ft->add_field('string', 'remote_host_ftp_port', $remote_server['ftp_port']); $ft->add_field('string', 'remote_encryption_key', $remote_server['encryption_key']); $ft->add_field('string', 'timeout', $remote_server['timeout']); $ft->add_field('on_off', 'use_nat', $remote_server['use_nat']); $ft->end_table(); $ft->add_button('submit', 'save_settings', get_lang('save_settings')); $ft->end_form(); echo create_back_button('server'); echo "<h2>" . get_lang_f('remote_ips_for', $remote_server['remote_server_name']) . "</h2>"; echo "<p class='info'>" . get_lang('hint') . ": " . get_lang('add_more_ips') . "</p>"; $remote_server_ips = $db->getRemoteServerIPs($remote_server['remote_server_id']); if (!empty($remote_server_ips)) { echo "<h1>" . get_lang('edit_ip') . "s</h1>"; include 'includes/lib_remote.php'; foreach ($remote_server_ips as $ip_row) { $servers_match_ip_id = $db->getIpPorts($ip_row['ip_id']); $servers_running = FALSE; if ($servers_match_ip_id) { foreach ($servers_match_ip_id as $home_info) { $remote = new OGPRemoteLibrary($home_info['agent_ip'], $home_info['agent_port'], $home_info['encryption_key']); $screen_running = $remote->is_screen_running(OGP_SCREEN_TYPE_HOME, $home_info['home_id']) === 1; if ($screen_running) { $servers_running = TRUE; break; } } } $disabled = $servers_running ? "disabled" : ""; $warning = $servers_running ? "<b class='failure' >" . get_lang('there_are_servers_running_on_this_ip') . "<b>" : ""; echo "<table class='center'>\n\t\t\t\t\t <tr>\n\t\t\t\t\t <td align='left' >\n\t\t\t\t\t <form method='post' action=''>\n\t\t\t\t\t <input name='ip_id' type='hidden' value='" . $ip_row['ip_id'] . "'/>\n\t\t\t\t\t <input name='ip' type='text' value='" . $ip_row['ip'] . "'/>\n\t\t\t\t\t <input type='submit' name='edit_ip' value='" . get_lang('edit_ip') . "' {$disabled}/>\n\t\t\t\t\t <input type='submit' name='remove_ip' value='" . get_lang('remove_ip') . "' {$disabled}/> {$warning}\n\t\t\t\t\t </form>\n\t\t\t\t\t </td>\n\t\t\t\t\t <td style='text-align:left;'>\n\t\t\t\t\t <a href='?m=server&p=arrange_ports&rserver_id=" . $rhost_id . "&ip_id=" . $ip_row['ip_id'] . "'>" . get_lang('arrange_ports') . "</a>\n\t\t\t\t\t </td>\n\t\t\t\t\t </tr>\n\t\t\t\t\t </table>"; } } echo "<h1>" . get_lang('add_ip') . "s</h1>"; $ft = new FormTable(); $ft->start_form(''); $ft->add_field_hidden('rhost_id', $remote_server['remote_server_id']); $ft->start_table(); $ft->add_field('string', 'remote_ip', ''); $ft->end_table(); $ft->add_button('submit', 'add_ip', get_lang('add_ip')); $ft->end_form(); } else { print_failure("Invalid url."); $view->refresh("?m=server"); } }