bibis/public/post-delete/index.php

42 行
1.2 KiB
PHP

<?php
require_once(__DIR__ . '/../../require.php');
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, ['権限無し。']); }
$errors = delete_post($id);
if ($errors) { return on_error('500', $errors); }
$_SESSION['messages'] = ['書き込みを削除しました。'];
http_response_code(301);
header('Location: ' . sitebase());
}