10) { $validatedContent = $content; }else{ $_SESSION["message"] = "invalid_content"; header("location: ../../index.php?pfad=createArticle"); exit(); } echo "Contentvalidierung erfolgreich"; // --------------------- -Eingabevalidierung der Kategorie: -------------------- $category = $_POST["category"]; $allowedCategories = [ 'deutsch', 'englisch', 'franzoesisch', 'latein', 'literatur', 'mathe', 'biologie', 'chemie', 'physik', 'informatik', 'astronomie', 'geschichte', 'erdkunde', 'sozialkunde', 'wirtschaft', 'religion', 'ethik', 'philosophie', 'psychologie', 'kunst', 'musik', 'theater', 'technik', 'werken', 'hauswirtschaft', 'sport' ]; if (!in_array($category, $allowedCategories, true)) { $_SESSION["message"] = "invalid_category"; header("location: ../../index.php?pfad=createArticle"); exit(); } $validatedCategory = $category; echo "Kategorievalidierung erfolgreich"; // -------------------------- Eingabevalidierung der tags: ---------------------- if (isset($_POST['tags'])) { $tags = $_POST['tags']; } else { $tags = ''; } $validatedTags = []; $rawTags = explode(',', $tags); // String mit Kommas in array... foreach ($rawTags as $rawTag) { // Leerzeichen am Anfang/Ende des einzelnen Tags entfernen: $tag = trim($rawTag); // leere Elemente überspringen: if ($tag === '') { continue; } // Tag mit Regex prüfen: $tagPattern = '/^[a-zA-Z0-9äöüÄÖÜß\s-]{2,50}$/u'; //Erlaubt: Buchstaben, Zahlen, Bindestriche, Leerzeichen; 2-50 Zeichen if (preg_match($tagPattern, $tag)) { $validatedTags[] = $tag; } else { $_SESSION["message"] = "invalid_tags"; header("location: ../../index.php?pfad=createArticle"); exit(); } } // Duplikate entfernen: $validatedTags = array_unique($validatedTags); $validatedTags = implode(',', $validatedTags); echo "Tagvalidierung erfolgreich"; // ----------------- Übertragung der validierten Daten in ArticleManager: --------------------------- if (!isset($validatedTitle) || !isset($validatedContent) || !isset($validatedAuthor) || !isset($validatedCategory) || !isset($validatedTags)) { $_SESSION["message"] = "validation_missing"; header("location: ../../index.php?pfad=createArticle"); exit(); } else { try { $articleManager = ArticleManager::getInstance(); $articleManager->addArticle($validatedTitle, $validatedContent, $validatedAuthor, $validatedCategory, $validatedTags); echo "Speichern erfolgreich"; } catch (Exception $e){ $_SESSION["message"] = "internal_error"; header("location: ../../index.php?pfad=createArticle"); exit(); } $_SESSION["message"] = "new_article"; // Weiterleitung zur Homepage header("location: ../../index.php"); exit(); } } } ?>