prepare($sql); $stmt->execute([ "game_id" => $_GET["game"], "member_id" => $_SESSION["account"]->id, ]); $submission = $stmt->fetch(PDO::FETCH_OBJ); if (!$submission) { http_response_code(303); header("Location: /games/" . $_GET["game"]); die(); } $sql = "SELECT id, name, status_id FROM games WHERE id = :id"; $stmt = $db["data"]->prepare($sql); $stmt->execute([ "id" => $_GET["game"], ]); $game = $stmt->fetch(PDO::FETCH_OBJ); define("GAME_IS_OPEN", $game->status_id === STATUS_ENROLLING); $title = "Update: {$game->name}"; $description = "Update your submission for the " . $game->name . " vote."; } if ($_SERVER["REQUEST_METHOD"] === "POST"): define("NEW_MANUSCRIPT", $_POST["keep-manuscript"] === "0"); define("EXISTING_MANUSCRIPT", $_POST["keep-manuscript"] === "1"); define( "RULES_WERE_FOLLOWED", isset($_POST["agree-toc"]) && $_POST["agree-toc"] === "1" && (isset($_POST["agree-guidelines"]) && $_POST["agree-guidelines"] === "1") ); define("FILE_EMPTY", $_FILES["manuscript"]["size"] === 0); define("FILE_TOO_BIG", $_FILES["manuscript"]["size"] > UPLOAD_MAX_FILESIZE); $stmt = $db["data"]->prepare("SELECT id FROM games WHERE id = :id"); $stmt->execute([ "id" => $_GET["game"], ]); $errors = []; if (!$stmt->fetch(PDO::FETCH_COLUMN)) { $errors["game"] = "The chosen game doesn't exist."; } if (GAME_IS_OPEN && NEW_MANUSCRIPT && !RULES_WERE_FOLLOWED) { $errors["agreements"] = "Please accept the Terms & Conditions and the Submission Guidelines."; } if (GAME_IS_OPEN && NEW_MANUSCRIPT && FILE_EMPTY) { $errors["filesize"] = "A file upload is required."; } elseif (NEW_MANUSCRIPT && FILE_TOO_BIG) { $errors["filesize"] = "Your document is too large."; } elseif (GAME_IS_OPEN && NEW_MANUSCRIPT) { $finfo = finfo_open(FILEINFO_MIME_TYPE); $mime_type = finfo_file($finfo, $_FILES["manuscript"]["tmp_name"]); finfo_close($finfo); $PROPER_MIMETYPE = $mime_type === "application/pdf"; } if (isset($PROPER_MIMETYPE) && !$PROPER_MIMETYPE) { $errors["mimetype"] = "Only PDF submissions are allowed."; } if (GAME_IS_OPEN && (!isset($_POST["title"]) || !trim($_POST["title"]))) { $errors["title"] = "Please enter a title."; } if (GAME_IS_OPEN && !isset($_SESSION["account"])) { $errors["account"] = "We can't upload a document without knowing which account it belongs to."; } if (GAME_IS_OPEN && !isset($_POST["tx-id"])) { $errors["payment"] = "You must submit a payment."; } if (count($errors) > 0) { http_response_code(400); define( "HAS_FILE_ERRORS", isset($errors["filesize"]) || isset($errors["mimetype"]) ); if (NEW_MANUSCRIPT && !HAS_FILE_ERRORS) { $errors["upload"] = "Fix all other errors and choose your file again."; } } else { $params = [ "submission_id" => $submission->id, "title" => $_POST["title"], "doc_is_public" => isset($_POST["public-doc"]) ? 1 : 0, "name_is_public" => isset($_POST["public-name"]) ? 1 : 0, ]; if (GAME_IS_OPEN && NEW_MANUSCRIPT) { $basename = md5(microtime() . $game->id . $_SESSION["account"]->id) . ".pdf"; $hash = md5( $_SESSION["account"]->id . $game->id . microtime() . "salt" ); $file_destination = sprintf( "%s/%s/%s", DIRECTORY_DOCS, $game->id, $basename ); try { $file_moved = move_uploaded_file( $_FILES["manuscript"]["tmp_name"], $file_destination ); if ($file_moved) { $stmt = $db["data"]->prepare( "SELECT basename FROM submissions WHERE id = :submission_id" ); $stmt->execute([ "submission_id" => $submission->id, ]); $old_manuscript = sprintf( "%s/%s/%s", DIRECTORY_DOCS, $game->id, $stmt->fetch(PDO::FETCH_COLUMN) ); unlink($old_manuscript); $stmt = $db["data"] ->prepare("UPDATE submissions SET (title, basename, hash, doc_is_public, name_is_public, created_at) = (:title, :basename, :hash, :doc_is_public, :name_is_public, :created_at) WHERE id = :submission_id"); $params["basename"] = $basename; $params["hash"] = $hash; $params["created_at"] = date("Y-m-d\TH:i:s\Z"); $stmt->execute($params); http_response_code(303); header("Location: /games/" . $_GET["game"]); } } catch (Exception $e) { var_dump($e); http_response_code(500); unlink($file_destination); $errors["upload"] = "There was an error adding your submission to our database. Please try again."; } } if (GAME_IS_OPEN && EXISTING_MANUSCRIPT) { $stmt = $db["data"] ->prepare("UPDATE submissions SET (title, doc_is_public, name_is_public) = (:title, :doc_is_public, :name_is_public) WHERE id = :submission_id"); $stmt->execute($params); http_response_code(303); header("Location: /games/" . $_GET["game"]); } if (!GAME_IS_OPEN) { $stmt = $db["data"] ->prepare("UPDATE submissions SET (doc_is_public, name_is_public) = (:doc_is_public, :name_is_public) WHERE id = :submission_id"); $stmt->execute([ "submission_id" => $submission->id, "doc_is_public" => isset($_POST["public-doc"]) ? 1 : 0, "name_is_public" => isset($_POST["public-name"]) ? 1 : 0, ]); http_response_code(303); header("Location: /games/" . $_GET["game"]); } } endif; include "partials/head.php"; ?>

If you would like to withdraw your submission, please email us at sixfold@sixfold.org.

This game's submissions are now locked, and you may only edit your work's public visibility.

Submission Details
Submission ID Transaction ID Account ID
id ?> transaction_id ?> id ?>
doc_is_public; $name_is_public = isset($_POST["public-name"]) ? (bool) $_POST["public-name"] : $submission->name_is_public; ?>
" method="post" enctype="multipart/form-data" class="flow">

Manuscript details />
/>
Privacy settings
Payment

You have already paid for this submission. (Transaction ID: transaction_id ?>)