deleted){ pageBuilder::errorCode(404); } $subforumId = $threadInfo->subforumid; } elseif(isset($_GET['ForumID'])) { $threadInfo = false; $subforumId = $_GET['ForumID']; } else { pageBuilder::errorCode(404); } $subforumInfo = forum::getSubforumInfo($subforumId); if(!$subforumInfo){ pageBuilder::errorCode(404); } if(!$threadInfo && $subforumInfo->minadminlevel && SESSION["adminLevel"] < $subforumInfo->minadminlevel){ pageBuilder::errorCode(404); } $errors = ["subject"=>false, "body"=>false, "general"=>false]; $subject = $body = false; if($_SERVER['REQUEST_METHOD'] == "POST") { $subject = $_POST["subject"] ?? ""; $body = $_POST["body"] ?? ""; $userid = SESSION["userId"]; if(!$threadInfo) { if(!strlen($subject)) $errors["subject"] = "Subject cannot be empty"; else if(strlen($subject) > 64) $errors["subject"] = "Subject must be shorter than 64 characters"; } if(!strlen($body)) $errors["body"] = "Body cannot be empty"; else if(strlen($body) > 10000) $errors["body"] = "Body must be shorter than 10,000 characters"; $floodcheck = db::run( "SELECT (SELECT COUNT(*) FROM forum_threads WHERE author = :uid AND postTime+30 > UNIX_TIMESTAMP()) + (SELECT COUNT(*) FROM forum_replies WHERE author = :uid AND postTime+30 > UNIX_TIMESTAMP()) AS floodcheck", [":uid" => SESSION["userId"]] )->fetchColumn(); if($floodcheck) $errors["general"] = "Please wait 30 seconds before sending another forum post"; if(!$errors["subject"] && !$errors["body"] && !$errors["general"]) { if($threadInfo) { db::run( "INSERT INTO forum_replies (body, threadId, author, postTime) VALUES (:body, :threadId, :author, UNIX_TIMESTAMP()); UPDATE forum_threads SET bumpIndex = UNIX_TIMESTAMP() WHERE id = :threadId;", [":body" => $body, ":threadId" => $threadId, ":author" => SESSION["userId"]] ); die(header("Location: /forum/showpost?PostID=".$threadInfo->id."#reply".$pdo->lastInsertId())); } else { db::run( "INSERT INTO forum_threads (subject, body, subforumid, author, postTime, bumpIndex) VALUES (:subject, :body, :subId, :author, UNIX_TIMESTAMP(), UNIX_TIMESTAMP())", [":subject" => $subject, ":body" => $body, ":subId" => $subforumId, ":author" => SESSION["userId"]] ); die(header("Location: /forum/showpost?PostID=".$pdo->lastInsertId())); } } } pageBuilder::$pageConfig["title"] = "New ".($threadInfo?"Reply":"Post"); pageBuilder::$CSSdependencies[] = "/css/simplemde.min.css"; pageBuilder::$JSdependencies[] = "/js/simplemde.min.js"; pageBuilder::buildHeader(); ?>