101 lines
2.2 KiB
PHP
101 lines
2.2 KiB
PHP
<?php
|
|
|
|
if (session_status() === PHP_SESSION_NONE) {
|
|
session_start();
|
|
}
|
|
|
|
require_once "php/model/CommentManager.php";
|
|
require_once "includes/csrf.php";
|
|
|
|
if ($_SERVER["REQUEST_METHOD"] !== "POST") {
|
|
header("Location: index.php");
|
|
exit();
|
|
}
|
|
|
|
if (!isset($_SESSION["user_email"])) {
|
|
header("Location: index.php?pfad=login");
|
|
exit();
|
|
}
|
|
|
|
// CSRF-Token prüfen, bevor irgendeine Änderung vorgenommen wird
|
|
if (!csrf_verify()) {
|
|
$_SESSION["comment_message"] = "Deine Sitzung ist abgelaufen. Bitte lade die Seite neu.";
|
|
$_SESSION["comment_message_type"] = "error";
|
|
header("Location: index.php");
|
|
exit();
|
|
}
|
|
|
|
$commentId = filter_input(
|
|
INPUT_POST,
|
|
"comment_id",
|
|
FILTER_VALIDATE_INT
|
|
);
|
|
|
|
$articleId = filter_input(
|
|
INPUT_POST,
|
|
"article_id",
|
|
FILTER_VALIDATE_INT
|
|
);
|
|
|
|
$content = trim($_POST["content"] ?? "");
|
|
|
|
/*
|
|
* Ohne gültige Beitrags-ID kann nicht sicher
|
|
* zum ursprünglichen Beitrag zurückgeleitet werden.
|
|
*/
|
|
if (!$articleId) {
|
|
header("Location: index.php");
|
|
exit();
|
|
}
|
|
|
|
/*
|
|
* Kommentar-ID und Inhalt werden geprüft.
|
|
*/
|
|
if (!$commentId || $content === "") {
|
|
$_SESSION["comment_message"] =
|
|
"Der Kommentar darf nicht leer sein.";
|
|
|
|
$_SESSION["comment_message_type"] = "error";
|
|
|
|
header(
|
|
"Location: index.php?pfad=showArticle&id="
|
|
. urlencode((string) $articleId)
|
|
. "#comments"
|
|
);
|
|
exit();
|
|
}
|
|
|
|
try {
|
|
$commentManager = CommentManager::getInstance();
|
|
|
|
$updated = $commentManager->updateComment(
|
|
$commentId,
|
|
$_SESSION["user_email"],
|
|
$content
|
|
);
|
|
|
|
if ($updated) {
|
|
$_SESSION["comment_message"] =
|
|
"Der Kommentar wurde erfolgreich bearbeitet.";
|
|
|
|
$_SESSION["comment_message_type"] = "success";
|
|
} else {
|
|
$_SESSION["comment_message"] =
|
|
"Der Kommentar konnte nicht bearbeitet werden.";
|
|
|
|
$_SESSION["comment_message_type"] = "error";
|
|
}
|
|
|
|
} catch (Throwable $e) {
|
|
$_SESSION["comment_message"] =
|
|
"Beim Bearbeiten des Kommentars ist ein Fehler aufgetreten.";
|
|
|
|
$_SESSION["comment_message_type"] = "error";
|
|
}
|
|
|
|
header(
|
|
"Location: index.php?pfad=showArticle&id="
|
|
. urlencode((string) $articleId)
|
|
. "#comments"
|
|
);
|
|
exit(); |