commit 007dfc57fdc4b14cf5d1e130854cd2794c2672ca Author: DOMINIK SCHRADER Date: Mon Dec 1 11:30:25 2025 +0100 Initial Commit diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..93c80af --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml new file mode 100644 index 0000000..8d4f284 --- /dev/null +++ b/.idea/php.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/sportanmeldung.iml b/.idea/sportanmeldung.iml new file mode 100644 index 0000000..c956989 --- /dev/null +++ b/.idea/sportanmeldung.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/api/anmeldung/create.php b/api/anmeldung/create.php new file mode 100644 index 0000000..ff65bda --- /dev/null +++ b/api/anmeldung/create.php @@ -0,0 +1,63 @@ +'Ungültige Daten']); exit; } + + if (empty($data['vorname']) || empty($data['nachname']) || empty($data['email']) || + empty($data['betrieb_id']) || empty($data['kurs_ids']) || !is_array($data['kurs_ids'])) { + http_response_code(400); + echo json_encode(['message' => 'Pflichtfelder fehlen']); + exit; + } + + $db->beginTransaction(); + + $stmt = $db->prepare("INSERT INTO schueler (vorname, nachname, email, geburtsdatum, betrieb_id) + VALUES (:vorname, :nachname, :email, :geburtsdatum, :betrieb_id)"); + $stmt->execute([ + ':vorname' => $data['vorname'], + ':nachname' => $data['nachname'], + ':email' => $data['email'], + ':geburtsdatum' => $data['geburtsdatum'] ?? null, + ':betrieb_id' => $data['betrieb_id'] + ]); + $schueler_id = (int)$db->lastInsertId(); + + $angemeldete_kurse = []; + foreach ($data['kurs_ids'] as $kurs_id) { + $check = $db->prepare("SELECT k.name, k.max_teilnehmer, COUNT(a.id) as belegt + FROM kurse k + LEFT JOIN anmeldungen a ON k.id = a.kurs_id + WHERE k.id = :kurs_id + GROUP BY k.id"); + $check->execute([':kurs_id' => $kurs_id]); + $kurs = $check->fetch(); + + if (!$kurs) { $db->rollBack(); http_response_code(400); echo json_encode(['message'=>'Kurs nicht gefunden']); exit; } + if ((int)$kurs['belegt'] >= (int)$kurs['max_teilnehmer']) { + $db->rollBack(); http_response_code(400); + echo json_encode(['message' => "Kurs '{$kurs['name']}' ist bereits voll"]); + exit; + } + + $insert = $db->prepare("INSERT INTO anmeldungen (schueler_id, kurs_id, anmeldedatum) + VALUES (:schueler_id, :kurs_id, NOW())"); + $insert->execute([':schueler_id' => $schueler_id, ':kurs_id' => $kurs_id]); + + $angemeldete_kurse[] = $kurs['name']; + } + + $db->commit(); + http_response_code(201); + echo json_encode([ + 'message' => 'Anmeldung erfolgreich', + 'schueler_id' => $schueler_id, + 'angemeldete_kurse' => $angemeldete_kurse + ]); +} catch (Exception $e) { + if ($db->inTransaction()) { $db->rollBack(); } + error_log("Error in anmeldung/create.php: " . $e->getMessage()); + http_response_code(500); + echo json_encode(['message' => 'Fehler bei der Anmeldung']); +} \ No newline at end of file diff --git a/api/auth/login.php b/api/auth/login.php new file mode 100644 index 0000000..d316ca9 --- /dev/null +++ b/api/auth/login.php @@ -0,0 +1,33 @@ + 'E-Mail und Passwort erforderlich']); + exit; + } + + $stmt = $db->prepare("SELECT id, email, password_hash, role FROM users WHERE email = :email LIMIT 1"); + $stmt->execute([':email' => $data['email']]); + $user = $stmt->fetch(); + + if (!$user || !password_verify($data['password'], $user['password_hash'])) { + http_response_code(401); + echo json_encode(['message' => 'Ungültige Anmeldedaten']); + exit; + } + + $_SESSION['user'] = [ + 'id' => (int)$user['id'], + 'email' => $user['email'], + 'role' => $user['role'], + ]; + + echo json_encode(['message' => 'Login erfolgreich', 'user' => $_SESSION['user']]); +} catch (Exception $e) { + error_log("Login error: " . $e->getMessage()); + http_response_code(500); + echo json_encode(['message' => 'Login fehlgeschlagen']); +} \ No newline at end of file diff --git a/api/auth/logout.php b/api/auth/logout.php new file mode 100644 index 0000000..2614d3d --- /dev/null +++ b/api/auth/logout.php @@ -0,0 +1,3 @@ + 'Logout erfolgreich']); \ No newline at end of file diff --git a/api/auth/me.php b/api/auth/me.php new file mode 100644 index 0000000..7f9b48a --- /dev/null +++ b/api/auth/me.php @@ -0,0 +1,6 @@ + $auth, + 'user' => $auth ? $_SESSION['user'] : null +]); \ No newline at end of file diff --git a/api/berichte/teilnehmer_betrieb.php b/api/berichte/teilnehmer_betrieb.php new file mode 100644 index 0000000..43a887f --- /dev/null +++ b/api/berichte/teilnehmer_betrieb.php @@ -0,0 +1,56 @@ +prepare($query); + $stmt->execute(); + + $bericht = []; + while ($row = $stmt->fetch()) { + $detail_query = "SELECT + s.vorname, + s.nachname, + GROUP_CONCAT(k.name SEPARATOR ', ') as angemeldete_kurse + FROM schueler s + LEFT JOIN anmeldungen a ON s.id = a.schueler_id + LEFT JOIN kurse k ON a.kurs_id = k.id + WHERE s.betrieb_id = :betrieb_id + GROUP BY s.id"; + $detail_stmt = $db->prepare($detail_query); + $detail_stmt->execute([':betrieb_id' => $row['betrieb_id']]); + + $schueler = []; + while ($detail = $detail_stmt->fetch()) { + $schueler[] = [ + 'vorname' => $detail['vorname'], + 'nachname' => $detail['nachname'], + 'angemeldete_kurse' => $detail['angemeldete_kurse'] ?? 'Keine Kurse' + ]; + } + + $bericht[] = [ + 'betrieb_id' => (int)$row['betrieb_id'], + 'betrieb_name' => $row['betrieb_name'], + 'adresse' => $row['adresse'], + 'anzahl_schueler' => (int)$row['anzahl_schueler'], + 'anzahl_anmeldungen' => (int)$row['anzahl_anmeldungen'], + 'schueler' => $schueler + ]; + } + + echo json_encode($bericht); +} catch (Exception $e) { + error_log("Error in berichte/teilnehmer_betrieb.php: " . $e->getMessage()); + http_response_code(500); + echo json_encode(['message' => 'Fehler beim Erstellen des Berichts']); +} \ No newline at end of file diff --git a/api/berichte/teilnehmer_kurs.php b/api/berichte/teilnehmer_kurs.php new file mode 100644 index 0000000..b12be33 --- /dev/null +++ b/api/berichte/teilnehmer_kurs.php @@ -0,0 +1,55 @@ +prepare($query); + $stmt->execute(); + + $bericht = []; + while ($row = $stmt->fetch()) { + $detail_query = "SELECT + s.vorname, + s.nachname, + b.name as betrieb_name + FROM anmeldungen a + JOIN schueler s ON a.schueler_id = s.id + JOIN betriebe b ON s.betrieb_id = b.id + WHERE a.kurs_id = :kurs_id + ORDER BY s.nachname, s.vorname"; + $detail_stmt = $db->prepare($detail_query); + $detail_stmt->execute([':kurs_id' => $row['kurs_id']]); + + $teilnehmer = []; + while ($detail = $detail_stmt->fetch()) { + $teilnehmer[] = [ + 'vorname' => $detail['vorname'], + 'nachname' => $detail['nachname'], + 'betrieb_name' => $detail['betrieb_name'] + ]; + } + + $bericht[] = [ + 'kurs_id' => (int)$row['kurs_id'], + 'kurs_name' => $row['kurs_name'], + 'max_teilnehmer' => (int)$row['max_teilnehmer'], + 'anzahl_teilnehmer' => (int)$row['anzahl_teilnehmer'], + 'auslastung_prozent' => (float)$row['auslastung_prozent'], + 'teilnehmer' => $teilnehmer + ]; + } + + echo json_encode($bericht); +} catch (Exception $e) { + error_log("Error in berichte/teilnehmer_kurs.php: " . $e->getMessage()); + http_response_code(500); + echo json_encode(['message' => 'Fehler beim Erstellen des Berichts']); +} \ No newline at end of file diff --git a/api/betriebe/get.php b/api/betriebe/get.php new file mode 100644 index 0000000..0b8f1a0 --- /dev/null +++ b/api/betriebe/get.php @@ -0,0 +1,23 @@ +prepare($query); + $stmt->execute(); + + $betriebe = []; + while ($row = $stmt->fetch()) { + $betriebe[] = [ + 'id' => (int)$row['id'], + 'name' => $row['name'], + 'adresse' => $row['adresse'] ?? '', + 'telefon' => '', + 'email' => $row['email'] ?? '' + ]; + } + echo json_encode($betriebe); +} catch (Exception $e) { + error_log("Error in betriebe/get.php: " . $e->getMessage()); + http_response_code(500); + echo json_encode(['message' => 'Fehler beim Laden der Betriebe']); +} \ No newline at end of file diff --git a/api/kurse/get.php b/api/kurse/get.php new file mode 100644 index 0000000..1b75947 --- /dev/null +++ b/api/kurse/get.php @@ -0,0 +1,38 @@ += k.max_teilnehmer THEN 0 ELSE 1 END as verfuegbar + FROM kurse k + LEFT JOIN anmeldungen a ON k.id = a.kurs_id + GROUP BY k.id + ORDER BY k.name"; + $stmt = $db->prepare($query); + $stmt->execute(); + + $kurse = []; + while ($row = $stmt->fetch()) { + $kurse[] = [ + 'id' => (int)$row['id'], + 'name' => $row['name'], + 'beschreibung' => $row['beschreibung'], + 'gebuehr' => (float)$row['gebuehr'], + 'max_teilnehmer' => (int)$row['max_teilnehmer'], + 'belegte_plaetze' => (int)$row['belegte_plaetze'], + 'freie_plaetze' => (int)$row['freie_plaetze'], + 'verfuegbar' => (bool)$row['verfuegbar'] + ]; + } + echo json_encode($kurse); +} catch (Exception $e) { + error_log("Error in kurse/get.php: " . $e->getMessage()); + http_response_code(500); + echo json_encode(['message' => 'Fehler beim Laden der Kurse']); +} \ No newline at end of file diff --git a/api/rechnungen/generate.php b/api/rechnungen/generate.php new file mode 100644 index 0000000..4b8d950 --- /dev/null +++ b/api/rechnungen/generate.php @@ -0,0 +1,65 @@ +'Betrieb-ID fehlt']); exit; } + + $betrieb_query = "SELECT id, name, adresse, email FROM betriebe WHERE id = :betrieb_id"; + $betrieb_stmt = $db->prepare($betrieb_query); + $betrieb_stmt->execute([':betrieb_id' => $betrieb_id]); + $betrieb = $betrieb_stmt->fetch(); + if (!$betrieb) { http_response_code(404); echo json_encode(['message'=>'Betrieb nicht gefunden']); exit; } + + $query = "SELECT + k.name as kurs_name, + k.gebuehr, + COUNT(a.id) as anzahl_teilnehmer, + (k.gebuehr * COUNT(a.id)) as gesamt_kurs + FROM kurse k + JOIN anmeldungen a ON k.id = a.kurs_id + JOIN schueler s ON a.schueler_id = s.id + WHERE s.betrieb_id = :betrieb_id + GROUP BY k.id"; + $stmt = $db->prepare($query); + $stmt->execute([':betrieb_id' => $betrieb_id]); + + $zusammenfassung = []; + $netto = 0.0; + while ($row = $stmt->fetch()) { + $zusammenfassung[] = [ + 'kurs_name' => $row['kurs_name'], + 'anzahl_teilnehmer' => (int)$row['anzahl_teilnehmer'], + 'gebuehr' => (float)$row['gebuehr'], + 'gesamt_kurs' => (float)$row['gesamt_kurs'] + ]; + $netto += (float)$row['gesamt_kurs']; + } + + if (empty($zusammenfassung)) { http_response_code(404); echo json_encode(['message'=>'Keine Anmeldungen für diesen Betrieb gefunden']); exit; } + + $mwst_satz = 19; + $mwst_betrag = $netto * ($mwst_satz / 100); + $gesamtsumme = $netto + $mwst_betrag; + + $rechnung = [ + 'rechnungsnummer' => 'RE-' . date('Y') . '-' . str_pad((string)$betrieb_id, 4, '0', STR_PAD_LEFT), + 'datum' => date('Y-m-d'), + 'betrieb' => [ + 'id' => (int)$betrieb['id'], + 'name' => $betrieb['name'], + 'adresse' => $betrieb['adresse'], + 'telefon' => '', + 'email' => $betrieb['email'] + ], + 'zusammenfassung' => $zusammenfassung, + 'netto' => round($netto, 2), + 'mwst_satz' => $mwst_satz, + 'mwst_betrag' => round($mwst_betrag, 2), + 'gesamtsumme' => round($gesamtsumme, 2) + ]; + echo json_encode($rechnung); +} catch (Exception $e) { + error_log("Error in rechnungen/generate.php: " . $e->getMessage()); + http_response_code(500); + echo json_encode(['message' => 'Fehler beim Erstellen der Rechnung']); +} \ No newline at end of file diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..7a73a41 --- /dev/null +++ b/composer.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/composer.phar b/composer.phar new file mode 100644 index 0000000..02740c5 Binary files /dev/null and b/composer.phar differ diff --git a/config/database.php b/config/database.php new file mode 100644 index 0000000..a4f8701 --- /dev/null +++ b/config/database.php @@ -0,0 +1,24 @@ +conn = null; + try { + $dsn = "mysql:host={$this->host};dbname={$this->db_name};charset=utf8mb4"; + error_log("Versuche Datenbankverbindung: " . $dsn); + $this->conn = new PDO($dsn, $this->username, $this->password); + $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + $this->conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); + error_log("Datenbankverbindung erfolgreich"); + } catch(PDOException $e) { + error_log("Connection Error: " . $e->getMessage()); + return null; + } + return $this->conn; + } +} \ No newline at end of file diff --git a/error.log b/error.log new file mode 100644 index 0000000..135a844 --- /dev/null +++ b/error.log @@ -0,0 +1,778 @@ +[21-Nov-2025 12:29:05 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 12:29:05 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:29:05 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 12:29:05 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:29:05 Europe/Berlin] Error in betriebe/get.php: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'telefon' in 'SELECT' +[21-Nov-2025 12:29:06 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:29:06 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:29:06 Europe/Berlin] Error in betriebe/get.php: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'telefon' in 'SELECT' +[21-Nov-2025 12:29:10 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 12:29:10 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:29:10 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 12:29:10 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:29:10 Europe/Berlin] Error in betriebe/get.php: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'telefon' in 'SELECT' +[21-Nov-2025 12:29:11 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:29:11 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:29:11 Europe/Berlin] Error in betriebe/get.php: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'telefon' in 'SELECT' +[21-Nov-2025 12:29:16 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:29:16 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:29:16 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:29:16 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:29:47 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 12:29:47 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:29:47 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 12:29:47 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:29:47 Europe/Berlin] Error in betriebe/get.php: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'telefon' in 'SELECT' +[21-Nov-2025 12:32:57 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 12:32:57 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:32:57 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:32:57 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:32:57 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 12:32:57 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:32:57 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:32:57 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:32:57 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 12:32:57 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 12:32:57 Europe/Berlin] Query: SELECT id, name, adresse, telefon, email + FROM betriebe + ORDER BY name +[21-Nov-2025 12:32:57 Europe/Berlin] Error in betriebe/get.php: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'telefon' in 'SELECT' +[21-Nov-2025 12:32:57 Europe/Berlin] Stack trace: #0 C:\Users\DSCHRA3\PhpstormProjects\sportanmeldung\api\betriebe\get.php(20): PDOStatement->execute() +#1 C:\Users\DSCHRA3\PhpstormProjects\sportanmeldung\index.php(55): include('C:\\Users\\DSCHRA...') +#2 C:\Users\DSCHRA3\PhpstormProjects\sportanmeldung\router.php(6): require('C:\\Users\\DSCHRA...') +#3 {main} +[21-Nov-2025 12:33:06 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:33:06 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:33:06 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:33:06 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:33:06 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:33:06 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:33:06 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:33:06 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:33:06 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:33:06 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:33:06 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:33:06 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:33:06 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:33:06 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:34:54 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 12:34:54 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:34:54 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:34:54 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:34:54 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 12:34:54 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:34:54 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:34:54 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:34:54 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 12:34:54 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 12:34:54 Europe/Berlin] Query: SELECT id, name, adresse, telefon, email + FROM betriebe + ORDER BY name +[21-Nov-2025 12:34:54 Europe/Berlin] Error in betriebe/get.php: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'telefon' in 'SELECT' +[21-Nov-2025 12:34:54 Europe/Berlin] Stack trace: #0 C:\Users\DSCHRA3\PhpstormProjects\sportanmeldung\api\betriebe\get.php(20): PDOStatement->execute() +#1 C:\Users\DSCHRA3\PhpstormProjects\sportanmeldung\index.php(126): include('C:\\Users\\DSCHRA...') +#2 C:\Users\DSCHRA3\PhpstormProjects\sportanmeldung\router.php(6): require('C:\\Users\\DSCHRA...') +#3 {main} +[21-Nov-2025 12:38:48 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 12:38:48 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:38:48 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:38:48 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:38:48 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 12:38:48 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:38:48 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:38:48 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:38:48 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 12:38:48 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 12:38:48 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 12:38:48 Europe/Berlin] Query ausgeführt +[21-Nov-2025 12:38:48 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 12:38:57 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:38:57 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:38:57 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:38:57 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:38:57 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:38:57 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:38:57 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:38:57 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:39:35 Europe/Berlin] API Request: OPTIONS /api/anmeldung +[21-Nov-2025 12:39:35 Europe/Berlin] API Request: POST /api/anmeldung +[21-Nov-2025 12:39:35 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:39:35 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:39:35 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 12:39:35 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:39:35 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:39:35 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:39:35 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 12:39:35 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:39:35 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:39:35 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:39:35 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 12:39:35 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 12:39:35 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 12:39:35 Europe/Berlin] Query ausgeführt +[21-Nov-2025 12:39:35 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 12:39:38 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:39:38 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:39:38 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:39:38 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:39:38 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:39:38 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:39:38 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:39:38 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:39:42 Europe/Berlin] API Request: OPTIONS /api/rechnungen/betrieb/3 +[21-Nov-2025 12:39:42 Europe/Berlin] API Request: GET /api/rechnungen/betrieb/3 +[21-Nov-2025 12:39:42 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:39:42 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:39:58 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:39:58 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:39:58 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:39:58 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:39:58 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:39:58 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:39:58 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:39:58 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:40:18 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:40:18 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:40:18 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:40:18 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:40:18 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:40:18 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:40:18 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:40:18 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:43:18 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 12:43:18 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:43:18 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:43:18 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:43:18 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 12:43:18 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:43:18 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:43:18 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:43:18 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 12:43:18 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 12:43:18 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 12:43:18 Europe/Berlin] Query ausgeführt +[21-Nov-2025 12:43:18 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 12:43:26 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:43:26 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:43:26 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:43:26 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:43:26 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:43:26 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:43:26 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:43:26 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:46:22 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 12:46:22 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:46:22 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:46:22 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:46:22 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 12:46:22 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:46:22 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:46:22 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:46:22 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 12:46:22 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 12:46:22 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 12:46:22 Europe/Berlin] Query ausgeführt +[21-Nov-2025 12:46:22 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 12:46:27 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:46:27 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:46:27 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:46:27 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:46:27 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:46:27 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:46:27 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:46:27 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:46:36 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:46:36 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:46:36 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:46:36 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:46:36 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:46:37 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:46:37 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:46:37 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:46:51 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:46:51 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:46:51 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:46:51 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:46:51 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:46:51 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:46:51 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:46:51 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:50:31 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 12:50:31 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:50:31 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:50:31 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:50:31 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 12:50:31 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:50:31 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:50:31 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:50:31 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 12:50:31 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 12:50:31 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 12:50:31 Europe/Berlin] Query ausgeführt +[21-Nov-2025 12:50:31 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 12:50:39 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:50:39 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:50:39 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:50:39 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:50:39 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:50:39 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:50:39 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:50:39 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:50:50 Europe/Berlin] API Request: OPTIONS /api/rechnungen/betrieb/3 +[21-Nov-2025 12:50:50 Europe/Berlin] API Request: GET /api/rechnungen/betrieb/3 +[21-Nov-2025 12:50:50 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:50:50 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:56:29 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 12:56:29 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:56:29 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:56:29 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:56:29 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 12:56:29 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:56:29 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:56:29 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:56:29 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 12:56:29 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 12:56:29 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 12:56:29 Europe/Berlin] Query ausgeführt +[21-Nov-2025 12:56:29 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 12:56:35 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 12:56:35 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:56:35 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:56:35 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:56:35 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 12:56:35 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:56:35 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:56:35 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:56:35 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 12:56:35 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 12:56:35 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 12:56:35 Europe/Berlin] Query ausgeführt +[21-Nov-2025 12:56:35 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 12:56:53 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 12:56:53 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:56:53 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:56:53 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:56:53 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 12:56:53 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:56:53 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:56:53 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:56:53 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 12:56:53 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 12:56:53 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 12:56:53 Europe/Berlin] Query ausgeführt +[21-Nov-2025 12:56:53 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 12:56:54 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 12:56:54 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:56:54 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:56:54 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 12:56:54 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:56:54 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:56:54 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 12:56:54 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 12:56:54 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 12:56:54 Europe/Berlin] Query ausgeführt +[21-Nov-2025 12:56:54 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 12:57:02 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:57:02 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 12:57:02 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:57:02 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 12:57:02 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:57:02 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 12:57:02 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 12:57:02 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 13:58:24 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 13:58:24 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 13:58:24 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 13:58:24 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 13:58:24 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 13:58:24 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 13:58:24 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 13:58:24 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 13:58:24 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 13:58:24 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 13:58:24 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 13:58:24 Europe/Berlin] Query ausgeführt +[21-Nov-2025 13:58:24 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:07:17 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:07:17 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:07:17 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:07:17 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:07:17 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:07:17 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:07:17 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:07:17 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:12:44 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:12:44 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:12:44 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:12:44 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:12:45 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:12:45 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:12:45 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:12:45 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:12:45 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:12:45 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:12:45 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:12:45 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:12:45 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:14:34 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:14:34 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:14:34 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:14:34 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:14:34 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:14:34 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:14:34 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:14:34 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:14:34 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:14:34 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:14:34 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:14:34 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:14:34 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:14:55 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:14:55 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:14:55 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:14:55 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:14:55 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:14:55 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:14:55 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:14:55 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:14:55 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:14:55 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:14:55 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:14:55 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:14:55 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:15:01 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:15:01 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:15:01 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:15:01 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:15:01 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:15:01 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:15:02 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:15:02 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:15:12 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:15:12 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:15:12 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:15:12 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:15:12 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:15:12 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:15:12 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:15:12 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:20:29 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:20:29 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:20:29 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:20:29 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:20:29 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:20:29 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:20:29 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:20:29 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:20:29 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:20:29 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:20:29 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:20:29 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:20:29 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:20:37 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:20:37 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:20:37 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:20:37 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:20:37 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:20:37 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:20:37 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:20:37 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:21:16 Europe/Berlin] API Request: OPTIONS /api/anmeldung +[21-Nov-2025 14:21:16 Europe/Berlin] API Request: POST /api/anmeldung +[21-Nov-2025 14:21:16 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:21:16 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:21:16 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:21:16 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:21:16 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:21:16 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:21:16 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:21:16 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:21:16 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:21:16 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:21:16 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:21:16 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:21:16 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:21:16 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:21:16 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:21:21 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:21:21 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:21:21 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:21:21 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:21:21 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:21:21 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:21:21 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:21:21 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:21:46 Europe/Berlin] API Request: OPTIONS /api/rechnungen/betrieb/3 +[21-Nov-2025 14:21:46 Europe/Berlin] API Request: GET /api/rechnungen/betrieb/3 +[21-Nov-2025 14:21:46 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:21:46 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:21:51 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:21:51 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:21:51 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:21:51 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:21:51 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:21:51 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:21:51 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:21:51 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:26:00 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:26:00 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:26:00 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:26:00 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:26:00 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:26:00 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:26:00 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:26:00 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:26:00 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:26:00 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:26:00 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:26:00 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:26:00 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:26:29 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:26:29 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:26:29 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:26:29 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:26:29 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:26:29 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:26:29 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:26:29 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:26:29 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:26:29 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:26:29 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:26:29 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:26:29 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:26:37 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:26:37 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:26:37 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:26:37 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:26:37 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:26:37 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:26:37 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:26:37 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:26:37 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:26:37 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:26:37 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:26:37 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:26:37 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:27:38 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:27:38 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:27:38 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:27:38 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:27:38 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:27:38 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:27:38 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:27:38 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:27:38 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:27:38 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:27:38 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:27:38 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:27:38 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:27:44 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:27:44 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:27:44 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:27:44 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:27:44 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:27:44 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:27:44 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:27:44 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:27:44 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:27:44 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:27:44 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:27:44 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:27:44 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:27:53 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:27:53 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:27:53 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:27:53 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:27:53 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:27:53 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:27:53 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:27:53 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:27:53 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:27:53 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:27:53 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:27:53 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:27:53 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:28:02 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:28:02 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:28:02 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:28:02 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:28:03 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:28:03 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:28:03 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:28:03 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:28:03 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:28:03 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:28:03 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:28:03 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:28:03 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:28:10 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:28:10 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:28:10 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:28:10 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:28:10 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:28:10 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:28:10 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:28:10 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:28:19 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:28:19 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:28:19 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:28:19 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:28:19 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:28:19 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:28:19 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:28:19 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:28:20 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:28:20 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:28:20 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:28:20 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:28:20 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:28:20 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:28:39 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:28:39 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:28:39 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:28:39 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:28:39 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:28:39 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:28:39 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:28:39 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:28:39 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:28:39 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:28:39 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:28:39 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:28:39 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:28:47 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:28:47 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:28:47 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:28:47 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:28:47 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:28:47 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:28:47 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:28:47 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:28:47 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:28:47 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:28:47 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:28:47 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:28:47 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:28:52 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:28:52 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:28:52 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:28:52 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:28:53 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:28:53 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:28:53 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:28:53 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:29:07 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:29:07 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:29:07 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:29:07 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:29:07 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:29:07 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:29:07 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:29:07 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:38:25 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:38:25 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:38:25 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:38:25 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:38:25 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:38:25 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:38:25 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:38:25 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:38:25 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:38:25 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:38:25 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:38:25 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:38:25 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:38:44 Europe/Berlin] API Request: OPTIONS /api/kurse +[21-Nov-2025 14:38:44 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:38:44 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:38:44 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:38:44 Europe/Berlin] API Request: OPTIONS /api/betriebe +[21-Nov-2025 14:38:44 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:38:44 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:38:44 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:38:44 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:38:44 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:38:44 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:38:44 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:38:44 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:38:47 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 14:38:47 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:38:47 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:38:47 Europe/Berlin] API Request: GET /api/betriebe +[21-Nov-2025 14:38:47 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:38:47 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:38:47 Europe/Berlin] betriebe/get.php aufgerufen +[21-Nov-2025 14:38:47 Europe/Berlin] Datenbankverbindung OK +[21-Nov-2025 14:38:47 Europe/Berlin] Query: SELECT id, name, adresse, email + FROM betriebe + ORDER BY name +[21-Nov-2025 14:38:47 Europe/Berlin] Query ausgeführt +[21-Nov-2025 14:38:47 Europe/Berlin] Anzahl Betriebe gefunden: 3 +[21-Nov-2025 14:38:52 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:38:52 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:38:52 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:38:52 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:38:52 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:38:52 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:38:52 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:38:52 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:38:58 Europe/Berlin] API Request: OPTIONS /api/rechnungen/betrieb/3 +[21-Nov-2025 14:38:58 Europe/Berlin] API Request: GET /api/rechnungen/betrieb/3 +[21-Nov-2025 14:38:58 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:38:58 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:39:51 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:39:51 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:39:51 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:39:51 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:39:51 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:39:51 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:39:51 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:39:51 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:40:02 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:40:02 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:40:02 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:40:02 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:40:02 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:40:02 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:40:02 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:40:02 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:40:20 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:40:20 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:40:20 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:40:20 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:40:20 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:40:20 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:40:20 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:40:20 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:42:14 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:42:14 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:42:14 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:42:14 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:42:14 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:42:14 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:42:14 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:42:14 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:42:16 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:42:16 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:42:16 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:42:16 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:42:16 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:42:16 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:43:49 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:43:49 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:43:49 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:43:49 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:43:49 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:43:49 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:43:49 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:43:49 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:43:59 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:43:59 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:43:59 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:43:59 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:43:59 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:43:59 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:43:59 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:43:59 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:44:06 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:44:06 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:44:06 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:44:06 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:44:06 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:44:06 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:44:06 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:44:06 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:44:28 Europe/Berlin] API Request: OPTIONS /api/rechnungen/betrieb/2 +[21-Nov-2025 14:44:28 Europe/Berlin] API Request: GET /api/rechnungen/betrieb/2 +[21-Nov-2025 14:44:28 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:44:28 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:44:36 Europe/Berlin] API Request: OPTIONS /api/rechnungen/betrieb/1 +[21-Nov-2025 14:44:36 Europe/Berlin] API Request: GET /api/rechnungen/betrieb/1 +[21-Nov-2025 14:44:36 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:44:36 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:44:40 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:44:40 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:44:40 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:44:40 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:44:40 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:44:40 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:44:40 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:44:40 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:45:22 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:45:22 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-betrieb +[21-Nov-2025 14:45:22 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:45:22 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 14:45:22 Europe/Berlin] API Request: OPTIONS /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:45:22 Europe/Berlin] API Request: GET /api/berichte/teilnehmer-pro-kurs +[21-Nov-2025 14:45:22 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 14:45:22 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 15:12:18 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 15:12:18 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 15:12:18 Europe/Berlin] API Request: GET /api/auth/me +[21-Nov-2025 15:12:18 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 15:12:18 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 15:12:18 Europe/Berlin] API Request: GET /api/kurse +[21-Nov-2025 15:12:18 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[21-Nov-2025 15:12:18 Europe/Berlin] Datenbankverbindung erfolgreich +[21-Nov-2025 15:12:18 Europe/Berlin] API Request: GET /api/betriebe +[24-Nov-2025 08:16:58 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[24-Nov-2025 08:16:58 Europe/Berlin] Datenbankverbindung erfolgreich +[24-Nov-2025 08:16:58 Europe/Berlin] API Request: GET /api/auth/me +[24-Nov-2025 08:16:58 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[24-Nov-2025 08:16:58 Europe/Berlin] Datenbankverbindung erfolgreich +[24-Nov-2025 08:16:58 Europe/Berlin] API Request: GET /api/kurse +[24-Nov-2025 08:16:58 Europe/Berlin] Versuche Datenbankverbindung: mysql:host=localhost;dbname=sportanmeldung;charset=utf8mb4 +[24-Nov-2025 08:16:58 Europe/Berlin] Datenbankverbindung erfolgreich +[24-Nov-2025 08:16:58 Europe/Berlin] API Request: GET /api/betriebe diff --git a/index.php b/index.php new file mode 100644 index 0000000..1f2971f --- /dev/null +++ b/index.php @@ -0,0 +1,90 @@ + 60 * 60 * 8, + 'path' => '/', + 'domain' => '', + 'secure' => false, // in Produktion true + HTTPS + 'httponly' => true, + 'samesite' => 'Lax', +]); +session_start(); + +require_once __DIR__ . '/config/database.php'; +$database = new Database(); +$db = $database->getConnection(); +if (!$db) { + http_response_code(500); + echo json_encode(['message' => 'Datenbankverbindung fehlgeschlagen']); + exit(); +} + +function currentUser(): ?array { return $_SESSION['user'] ?? null; } +function isAuthenticated(): bool { return isset($_SESSION['user']); } +function requireAuth(): void { + if (!isAuthenticated()) { http_response_code(401); echo json_encode(['message'=>'Nicht angemeldet']); exit; } +} +function requireRole(string $role): void { + requireAuth(); + if (($_SESSION['user']['role'] ?? '') !== $role) { + http_response_code(403); echo json_encode(['message'=>'Zugriff verweigert']); exit; + } +} + +error_log("API Request: $method $path"); + +// Auth +if ($method === 'POST' && $path === '/api/auth/login') { include __DIR__ . '/api/auth/login.php'; exit; } +if ($method === 'POST' && $path === '/api/auth/logout') { include __DIR__ . '/api/auth/logout.php'; exit; } +if ($method === 'GET' && $path === '/api/auth/me') { include __DIR__ . '/api/auth/me.php'; exit; } + +// Public +if ($method === 'GET' && $path === '/api/kurse') { include __DIR__ . '/api/kurse/get.php'; exit; } +if ($method === 'GET' && $path === '/api/betriebe') { include __DIR__ . '/api/betriebe/get.php'; exit; } +if ($method === 'POST' && $path === '/api/anmeldung') { include __DIR__ . '/api/anmeldung/create.php'; exit; } + +// Admin-only +if ($method === 'GET' && $path === '/api/berichte/teilnehmer-pro-betrieb') { + requireRole('admin'); include __DIR__ . '/api/berichte/teilnehmer_betrieb.php'; exit; +} +if ($method === 'GET' && $path === '/api/berichte/teilnehmer-pro-kurs') { + requireRole('admin'); include __DIR__ . '/api/berichte/teilnehmer_kurs.php'; exit; +} +if ($method === 'GET' && preg_match('#^/api/rechnungen/betrieb/(\d+)$#', $path, $m)) { + requireRole('admin'); $_GET['betrieb_id'] = $m[1]; include __DIR__ . '/api/rechnungen/generate.php'; exit; +} + +http_response_code(404); +echo json_encode(['message' => 'Endpoint nicht gefunden', 'path' => $path, 'method' => $method]); \ No newline at end of file diff --git a/router.php b/router.php new file mode 100644 index 0000000..59303cf --- /dev/null +++ b/router.php @@ -0,0 +1,27 @@ + public/index.html +if ($path === '/') { + $file = __DIR__ . '/public/index.html'; + if (file_exists($file)) { + header('Content-Type: text/html; charset=UTF-8'); + readfile($file); + return true; + } +} + +// Fallback an index.php +require __DIR__ . '/index.php'; +return true; \ No newline at end of file