(falls du es mal brauchst) $draftIdx = isset($_GET['draft']) ? max(1, (int)$_GET['draft']) : null; $byId = isset($_GET['id']) ? trim($_GET['id']) : null; $baseDir = __DIR__ . '/../data/designs'; if ($draftIdx !== null) { if (!$mail || !$bookingCode) { http_response_code(400); echo json_encode(['ok'=>false,'error'=>'missing mail or bookingCode']); exit; } $safeBooking = preg_replace('/[^A-Za-z0-9_-]/','', $bookingCode); $file = $baseDir . '/' . $safeBooking . '/draft' . $draftIdx . '.json'; } else if ($byId !== null) { $safeBooking = preg_replace('/[^A-Za-z0-9_-]/','', $byId); $file = $baseDir . '/' . $safeBooking . '/draft1.json'; } else { http_response_code(400); echo json_encode(['ok'=>false,'error'=>'missing draft or id']); exit; } if (!is_file($file)) { http_response_code(404); echo json_encode(['ok'=>false,'error'=>'not found']); exit; } // direkt den gespeicherten JSON-Inhalt ausgeben $json = file_get_contents($file); if ($json === false) throw new Exception('read failed'); echo $json; // ← wichtig: kein Wrapper, dein Client erwartet das rohe Design-JSON } catch (Throwable $e) { http_response_code(500); echo json_encode(['ok'=>false,'error'=>$e->getMessage()]); }