25 || strpos($_POST['name'], ':') != false || strpos($_POST['name'], 'radmin') != false) { $_SESSION['error'] = "Server name is too long"; header("Location: /my/add-server"); exit(); } $stmt = $db->prepare("SELECT * FROM servers WHERE hosting = 2 AND online = 1"); $stmt->execute(); while($server = $stmt->fetch(PDO::FETCH_ASSOC)) { if(in_array($server['port'], $availablePorts)) { $index = array_search($server['port'], $availablePorts); if ($index !== false) { unset($availablePorts[$index]); } } } if($_POST['hosting'] == "2") { if(count($availablePorts) == 0) { $_SESSION['error'] = "There are too many servers been hosted by novetusserverlist.com"; header("Location: /my/add-server"); exit(); } $allowedVersions = array("2010L", "2011E", "2011M"); if(!in_array($_POST['version'], $allowedVersions)) { $_SESSION['error'] = "This version is unsupported"; header("Location: /my/add-server"); exit(); } $port = $availablePorts[array_rand($availablePorts)]; $filename = uniqid(); $fileextension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION); if($fileextension != "rbxl" && $fileextension != "rbxlx") { $_SESSION['error'] = "Invalid file"; header("Location: /my/add-server"); exit(); } if(move_uploaded_file($_FILES['file']['tmp_name'], $_SERVER['DOCUMENT_ROOT'] . "/assets/places/" . $filename . "." . $fileextension)) { $stmt = $db->prepare("INSERT INTO servers (author, filename, port, maxplayers, hosting, title, client) VALUES (:author, :filename, :port, :maxplayers, :hosting, :title, :client)"); $stmt->execute([ ':author' => $_SESSION['siteusername'], ':filename' => $filename . "." . $fileextension, ':port' => $port, ':maxplayers' => $_POST['maxplayers'], ':hosting' => 2, ':title' => $_POST['name'], ':client' => $_POST['version'] ]); } else { $_SESSION['error'] = "Error uploading file"; header("Location: /my/add-server"); exit(); } } else { $allowedVersions = array("2006S", "2007E", "2007M", "2008M", "2009E", "2010L", "2011E", "2011M"); if(!in_array($_POST['version'], $allowedVersions)) { $_SESSION['error'] = "This version is unsupported"; header("Location: /my/add-server"); exit(); } if(!(substr($_POST['uri'], 0, strlen("novetus://")) === "novetus://")) { $_SESSION['error'] = "Invalid uri"; header("Location: /my/add-server"); exit(); } if(!filter_var($_POST['ip'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { $_SESSION['error'] = "Invalid IP"; header("Location: /my/add-server"); exit(); } $stmt = $db->prepare("INSERT INTO servers (author, filename, port, maxplayers, hosting, title, client, ip) VALUES (:author, :filename, :port, :maxplayers, :hosting, :title, :client, :ip)"); $stmt->execute([ ':author' => $_SESSION['siteusername'], ':filename' => "", ':port' => $_POST['port'], ':maxplayers' => $_POST['maxplayers'], ':hosting' => 1, ':title' => $_POST['name'], ':client' => $_POST['version'], ':ip' => $_POST['ip'] ]); } $_SESSION['success'] = "Successfully created server."; header("Location: /my/servers"); exit(); } ?>