106 lines
2.3 KiB
PHP
106 lines
2.3 KiB
PHP
<?php
|
|
|
|
if (session_status() === PHP_SESSION_NONE) {
|
|
session_start();
|
|
}
|
|
|
|
require_once __DIR__ . "/../model/CommentManager.php";
|
|
|
|
/*
|
|
* Kommentare dürfen nur über ein POST-Formular gelöscht werden.
|
|
*/
|
|
if ($_SERVER["REQUEST_METHOD"] !== "POST") {
|
|
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
|
|
);
|
|
|
|
/*
|
|
* Nur angemeldete Nutzer dürfen Kommentare löschen.
|
|
*/
|
|
if (!isset($_SESSION["user_email"])) {
|
|
$_SESSION["comment_message"] = "Du musst angemeldet sein.";
|
|
$_SESSION["comment_message_type"] = "error";
|
|
|
|
if ($articleId !== false && $articleId !== null) {
|
|
header(
|
|
"Location: index.php?pfad=showArticle&id="
|
|
. urlencode((string) $articleId)
|
|
. "#comments"
|
|
);
|
|
} else {
|
|
header("Location: index.php");
|
|
}
|
|
exit();
|
|
}
|
|
|
|
/*
|
|
* Kommentar-ID und Beitrags-ID müssen gültige Zahlen sein.
|
|
*/
|
|
if (
|
|
$commentId === false
|
|
|| $commentId === null
|
|
|| $articleId === false
|
|
|| $articleId === null
|
|
) {
|
|
$_SESSION["comment_message"] =
|
|
"Der Kommentar konnte nicht gelöscht werden.";
|
|
|
|
$_SESSION["comment_message_type"] = "error";
|
|
|
|
header("Location: index.php");
|
|
exit();
|
|
}
|
|
|
|
try {
|
|
$commentManager = CommentManager::getInstance();
|
|
|
|
/*
|
|
* Die E-Mail-Adresse aus der Session wird mitgegeben.
|
|
* Dadurch kann der Nutzer nur eigene Kommentare löschen.
|
|
*/
|
|
$deleted = $commentManager->deleteComment(
|
|
$commentId,
|
|
$_SESSION["user_email"]
|
|
);
|
|
|
|
if ($deleted) {
|
|
$_SESSION["comment_message"] =
|
|
"Der Kommentar wurde gelöscht.";
|
|
|
|
$_SESSION["comment_message_type"] = "success";
|
|
} else {
|
|
$_SESSION["comment_message"] =
|
|
"Der Kommentar wurde nicht gefunden oder gehört nicht dir.";
|
|
|
|
$_SESSION["comment_message_type"] = "error";
|
|
}
|
|
|
|
} catch (Throwable $e) {
|
|
$_SESSION["comment_message"] =
|
|
"Der Kommentar konnte nicht gelöscht werden.";
|
|
|
|
$_SESSION["comment_message_type"] = "error";
|
|
}
|
|
|
|
/*
|
|
* Anschließend wird wieder zum Beitrag und zu den Kommentaren geleitet.
|
|
*/
|
|
header(
|
|
"Location: index.php?pfad=showArticle&id="
|
|
. urlencode((string) $articleId)
|
|
. "#comments"
|
|
);
|
|
|
|
exit();
|