isLocked) { http_response_code(403); msg_error("This topic is locked!"); exit; } $attachments = reArrayFiles($_FILES["files"]); if (count($attachments) > MAX_ATTACHMENT_COUNT) RequestUtils::triggerFormError(__("Too many attachments"), $formId); // check all attachments before saving one foreach ($attachments as $att) { if ($att["size"] > MAX_ATTACHMENT_SIZE) { RequestUtils::triggerFormError(__("Individual file size exceeded"), $formId); } } $message = trim(RequestUtils::getRequiredField("message", $formId)); if (strlen($message) < 1 || strlen($message) > 0x8000) { RequestUtils::triggerFormError(__("Message too short or too long!"), $formId); } $item = new Post(); $item->id = $db->generateId(); $item->authorId = $currentUser->id; $item->topicId = $topicId; $item->content = $message; $item->postDate = new DateTimeImmutable(); $item->deleted = false; $item->edited = false; $db->insert($item); foreach ($attachments as $att) { [ "name" => $name, "type" => $type, "tmp_name" => $tmpName, ] = $att; $attachment = new Attachment(); $attachment->id = $db->generateId(); $attachment->name = $name; $attachment->mimeType = $type; $attachment->postId = $item->id; $attachment->contents = file_get_contents($tmpName); $db->insert($attachment); } header("Location: ?_action=viewtopic&topic=" . urlencode($topicId) . "#form");