$message], JSON_UNESCAPED_UNICODE); exit; } function require_auth() { if (empty($_SESSION['user_id'])) { json_error('Nicht angemeldet', 401); } return $_SESSION['user_id']; } function require_admin() { require_auth(); if (empty($_SESSION['is_admin'])) { json_error('Keine Admin-Berechtigung', 403); } return $_SESSION['user_id']; } function get_method() { return $_SERVER['REQUEST_METHOD']; } function get_json_body() { $body = file_get_contents('php://input'); return json_decode($body, true) ?: []; } function get_param($name, $default = null) { return $_GET[$name] ?? $default; }