Initial Commit

This commit is contained in:
DOMINIK SCHRADER
2025-12-01 11:30:25 +01:00
commit 007dfc57fd
20 changed files with 1313 additions and 0 deletions

8
.idea/.gitignore generated vendored Normal file
View File

@@ -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

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/sportanmeldung.iml" filepath="$PROJECT_DIR$/.idea/sportanmeldung.iml" />
</modules>
</component>
</project>

20
.idea/php.xml generated Normal file
View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MessDetectorOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCSFixerOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCodeSnifferOptionsConfiguration">
<option name="highlightLevel" value="WARNING" />
<option name="transferred" value="true" />
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="8.5" />
<component name="PhpStanOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PsalmOptionsConfiguration">
<option name="transferred" value="true" />
</component>
</project>

8
.idea/sportanmeldung.iml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

63
api/anmeldung/create.php Normal file
View File

@@ -0,0 +1,63 @@
<?php
global $db;
try {
$data = json_decode(file_get_contents("php://input"), true);
if (!$data) { http_response_code(400); echo json_encode(['message'=>'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']);
}

33
api/auth/login.php Normal file
View File

@@ -0,0 +1,33 @@
<?php
global $db;
try {
$data = json_decode(file_get_contents("php://input"), true);
if (!$data || empty($data['email']) || empty($data['password'])) {
http_response_code(400);
echo json_encode(['message' => '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']);
}

3
api/auth/logout.php Normal file
View File

@@ -0,0 +1,3 @@
<?php
session_destroy();
echo json_encode(['message' => 'Logout erfolgreich']);

6
api/auth/me.php Normal file
View File

@@ -0,0 +1,6 @@
<?php
$auth = isset($_SESSION['user']);
echo json_encode([
'authenticated' => $auth,
'user' => $auth ? $_SESSION['user'] : null
]);

View File

@@ -0,0 +1,56 @@
<?php
global $db;
try {
$query = "SELECT
b.id as betrieb_id,
b.name as betrieb_name,
b.adresse,
COUNT(DISTINCT s.id) as anzahl_schueler,
COUNT(a.id) as anzahl_anmeldungen
FROM betriebe b
LEFT JOIN schueler s ON b.id = s.betrieb_id
LEFT JOIN anmeldungen a ON s.id = a.schueler_id
GROUP BY b.id
ORDER BY b.name";
$stmt = $db->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']);
}

View File

@@ -0,0 +1,55 @@
<?php
global $db;
try {
$query = "SELECT
k.id as kurs_id,
k.name as kurs_name,
k.max_teilnehmer,
COUNT(a.id) as anzahl_teilnehmer,
ROUND((COUNT(a.id) / k.max_teilnehmer) * 100, 2) as auslastung_prozent
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();
$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']);
}

23
api/betriebe/get.php Normal file
View File

@@ -0,0 +1,23 @@
<?php
global $db;
try {
$query = "SELECT id, name, adresse, email FROM betriebe ORDER BY name";
$stmt = $db->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']);
}

38
api/kurse/get.php Normal file
View File

@@ -0,0 +1,38 @@
<?php
global $db;
try {
$query = "SELECT
k.id,
k.name,
k.beschreibung,
k.gebuehr,
k.max_teilnehmer,
COUNT(a.id) as belegte_plaetze,
(k.max_teilnehmer - COUNT(a.id)) as freie_plaetze,
CASE WHEN COUNT(a.id) >= 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']);
}

View File

@@ -0,0 +1,65 @@
<?php
global $db;
try {
$betrieb_id = $_GET['betrieb_id'] ?? null;
if (!$betrieb_id) { http_response_code(400); echo json_encode(['message'=>'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']);
}

2
composer.json Normal file
View File

@@ -0,0 +1,2 @@
{
}

BIN
composer.phar Normal file

Binary file not shown.

24
config/database.php Normal file
View File

@@ -0,0 +1,24 @@
<?php
class Database {
private $host = "localhost";
private $db_name = "sportanmeldung";
private $username = "admin";
private $password = "13!Q95dqW`T";
public $conn;
public function getConnection() {
$this->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;
}
}

778
error.log Normal file
View File

@@ -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

90
index.php Normal file
View File

@@ -0,0 +1,90 @@
<?php
declare(strict_types=1);
error_reporting(E_ALL);
ini_set('display_errors', '0');
ini_set('log_errors', '1');
ini_set('error_log', __DIR__ . '/error.log');
$method = $_SERVER['REQUEST_METHOD'] ?? 'GET';
$uri = $_SERVER['REQUEST_URI'] ?? '/';
$path = parse_url($uri, PHP_URL_PATH) ?: '/';
$allowedOrigins = [
'http://127.0.0.1:5500',
'http://localhost:5500',
'http://127.0.0.1:8000', // falls Frontend auch hier läuft
'http://localhost:8000',
];
$origin = $_SERVER['HTTP_ORIGIN'] ?? '';
if (in_array($origin, $allowedOrigins, true)) {
header('Access-Control-Allow-Origin: ' . $origin);
header('Vary: Origin');
}
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
header('Content-Type: application/json; charset=UTF-8');
if ($method === 'OPTIONS') {
http_response_code(204);
exit();
}
session_set_cookie_params([
'lifetime' => 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]);

27
router.php Normal file
View File

@@ -0,0 +1,27 @@
<?php
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
// API an index.php routen
if (strpos($path, '/api/') === 0) {
require __DIR__ . '/index.php';
return true;
}
// Statische Dateien ausliefern
if ($path !== '/' && file_exists(__DIR__ . $path)) {
return false;
}
// Root -> 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;