2023-08-21 01:04:55 +09:00
|
|
|
<?php
|
2024-03-30 00:05:14 +09:00
|
|
|
require_once(__DIR__ . '/../../src/require.php');
|
2023-08-21 01:04:55 +09:00
|
|
|
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
|
|
|
|
do_get();
|
|
|
|
}
|
|
|
|
elseif ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
|
|
do_post();
|
|
|
|
}
|
|
|
|
|
|
|
|
function do_get() {
|
|
|
|
$id = $_GET['id'] ?? '';
|
|
|
|
if (validate_post_id($id)) { return on_error(400, ['URL が不正。']); }
|
|
|
|
|
|
|
|
$post = load_post_by_id($id);
|
|
|
|
if (!$post) { return on_error(400, ['書き込みが存在しない']); }
|
|
|
|
|
|
|
|
// 削除済み投稿はuseridが空になるからここにくる。
|
|
|
|
if (!$post['is_mine']) { return on_error(403, ['権限無し。']); }
|
|
|
|
$view['post'] = $post;
|
|
|
|
|
|
|
|
output_html($view, ['header.php', 'post-delete.php']);
|
|
|
|
}
|
|
|
|
|
|
|
|
function do_post() {
|
|
|
|
$id = $_GET['id'] ?? '';
|
|
|
|
if (validate_post_id($id)) { return on_error(400, ['URL が不正。']); }
|
|
|
|
|
|
|
|
$post = load_post_by_id($id);
|
|
|
|
if (!$post) { return on_error(400, ['書き込みが存在しない']); }
|
|
|
|
|
|
|
|
// 削除済み投稿はuseridが空になるからここにくる。
|
|
|
|
if ($post['userid'] !== ($_SESSION['user']['id'] ?? '')) { return on_error(403, ['権限無し。']); }
|
|
|
|
|
2023-09-04 21:56:01 +09:00
|
|
|
$errors = delete_post($id, $post['is_future'] ?? false);
|
2023-08-21 01:04:55 +09:00
|
|
|
if ($errors) { return on_error('500', $errors); }
|
|
|
|
|
|
|
|
$_SESSION['messages'] = ['書き込みを削除しました。'];
|
|
|
|
http_response_code(301);
|
|
|
|
header('Location: ' . sitebase());
|
|
|
|
}
|