prepare("SELECT * FROM selfhosted_servers WHERE id = :id"); $query->bindParam(":id", $serverID, PDO::PARAM_INT); $query->execute(); $server = $query->fetch(PDO::FETCH_OBJ); if(!$server || !SESSION["adminLevel"] && $server->hoster != SESSION["userId"]) pageBuilder::errorCode(404); catalog::$gear_attributes = json_decode($server->allowed_gears, true); $alert = false; if($_SERVER['REQUEST_METHOD'] == "POST") { $delete = $_POST["delete"] ?? false; if($delete) { $query = $pdo->prepare("DELETE FROM selfhosted_servers WHERE id = :id"); $query->bindParam(":id", $serverID, PDO::PARAM_INT); $query->execute(); die(); } $name = $_POST["name"] ?? false; $description = $_POST["description"] ?? false; $ip = $_POST["ip"] ?? false; $port = $_POST["port"] ?? false; $version = $_POST["version"] ?? false; $maxplayers = $_POST["maxplayers"] ?? false; $pbs = in_array($version, ["2011", "2012"]) && isset($_POST["pbs"]) && $_POST["pbs"] == "on"; catalog::parse_gear_attributes(); if(!strlen($name)) $alert = ["text" => "Server name cannot be empty", "color" => "danger"]; elseif(strlen($name) > 50) $alert = ["text" => "Server name cannot be longer than 50 characters", "color" => "danger"]; elseif(strlen($description) > 1000) $alert = ["text" => "Server description cannot be longer than 1000 characters", "color" => "danger"]; elseif(!strlen($ip)) $alert = ["text" => "IP address cannot be empty", "color" => "danger"]; elseif(!filter_var($ip, FILTER_VALIDATE_IP)) $alert = ["text" => "Invalid IP address", "color" => "danger"]; elseif(!is_numeric($port) || $port < 1 || $port > 65536) { $alert = ["text" => "Invalid port", "color" => "danger"]; $port = false; } elseif(!in_array($version, ["2009", "2010", "2011", "2012"])) $alert = ["text" => "Invalid version", "color" => "danger"]; elseif(!is_numeric($maxplayers) || $maxplayers < 1 || $maxplayers > 2147483648) { $alert = ["text" => "Invalid maximum player count", "color" => "danger"]; $maxplayers = false; } else { $server->name = $name; $server->description = $description; $server->ip = $ip; $server->port = $port; $server->version = $version; $server->maxplayers = $maxplayers; $server->allowed_gears = json_encode(catalog::$gear_attributes); $server->pbs = $pbs; $query = $pdo->prepare("UPDATE selfhosted_servers SET name = :name, description = :desc, ip = :ip, port = :port, version = :version, maxplayers = :players, allowed_gears = :gears, pbs = :pbs WHERE id = :id"); $query->bindParam(":name", $server->name, PDO::PARAM_STR); $query->bindParam(":desc", $server->description, PDO::PARAM_STR); $query->bindParam(":ip", $server->ip, PDO::PARAM_STR); $query->bindParam(":port", $server->port, PDO::PARAM_INT); $query->bindParam(":version", $server->version, PDO::PARAM_INT); $query->bindParam(":players", $server->maxplayers, PDO::PARAM_INT); $query->bindParam(":gears", $server->allowed_gears, PDO::PARAM_STR); $query->bindParam(":pbs", $server->pbs, PDO::PARAM_INT); $query->bindParam(":id", $serverID, PDO::PARAM_INT); $query->execute(); $alert = ["text" => "Your changes to this server have been saved (".date('h:i:s A').")", "color" => "primary"]; } } pageBuilder::$pageConfig["title"] = "Configure Server"; pageBuilder::buildHeader(); ?>

Configure Server

Back
px-2 py-1" role="alert">
name?' value="'.htmlspecialchars($server->name).'"':''?>>
Use current address ip?' value="'.htmlspecialchars($server->ip).'"':''?>>
version, [2009, 2010])?' style="display:none"':''?>>
pbs?' checked="checked"':''?>>
version==2009?' style="display:none"':''?>>
>
>
>
>
>
>
>
>
>
Cancel
Back