false, "asset-name" => false, "asset-file" => false]; $types = [ "shirts" => ["name" => "Shirt", "file" => "Shirt template"], "pants" => ["name" => "Pants", "file" => "template"] ]; if($_SERVER["REQUEST_METHOD"] == "POST") { $errors["type"] = "shirts"; if(!isset($_POST["polygon-csrf"]) || isset($_POST["polygon-csrf"]) && $_POST["polygon-csrf"] != SESSION["csrfToken"]) { $errors["asset-name"] = "Invalid CSRF Token"; $errors["asset-file"] = "Invalid CSRF Token"; goto end; } $assetName = isset($_POST["asset-name"]) ? trim($_POST["asset-name"]) : false; $assetFile = isset($_FILES["asset-file"]) ? $_FILES["asset-file"] : false; if(!$assetName){ $errors["asset-name"] = "You haven't set the ".$types[$errors["type"]]["name"]." name"; goto fileCheck; } if(strlen($assetName) > 128){ $errors["asset-name"] = "The ".$types[$errors["type"]]["name"]." name must be less than 128 characters"; goto fileCheck; } fileCheck: if(!$assetFile){ $errors["asset-file"] = "You haven't uploaded the ".$types[$errors["type"]]["file"]; goto end; } if(!in_array($assetFile["type"], ["image/png", "image/jpeg"])){ $errors["asset-file"] = "The ".$types[$errors["type"]]["file"]." must be a PNG or a JPEG file"; goto end; } if($assetFile["size"] > 2097152){ $errors["asset-file"] = "The ".$types[$errors["type"]]["file"]." must be less than 2 megabytes in size"; } } end: pageBuilder::buildHeader(); ?>

Develop

places

Create a Shirt

you can use existing ROBLOX shirt templates!

">

My shirts

soon?
pants