From 0813dc21d8e39803ffdcf014d9bf6a7cd37e6921 Mon Sep 17 00:00:00 2001 From: Luki Date: Wed, 25 Feb 2026 16:23:51 +0100 Subject: [PATCH] initial commit --- UCL.png | Bin 0 -> 32648 bytes admin_dashboard.php | 13 +++++++++ champions_league.sql | 64 +++++++++++++++++++++++++++++++++++++++++++ dashboard.php | 13 +++++++++ db.php | 19 +++++++++++++ login.php | 17 ++++++++++++ login_process.php | 31 +++++++++++++++++++++ logout.php | 6 ++++ register.php | 24 ++++++++++++++++ register_process.php | 24 ++++++++++++++++ style.css | 57 ++++++++++++++++++++++++++++++++++++++ teams.php | 0 12 files changed, 268 insertions(+) create mode 100644 UCL.png create mode 100644 admin_dashboard.php create mode 100644 champions_league.sql create mode 100644 dashboard.php create mode 100644 db.php create mode 100644 login.php create mode 100644 login_process.php create mode 100644 logout.php create mode 100644 register.php create mode 100644 register_process.php create mode 100644 style.css create mode 100644 teams.php diff --git a/UCL.png b/UCL.png new file mode 100644 index 0000000000000000000000000000000000000000..b80823692435acab925df035066e67a56ae8ccf7 GIT binary patch literal 32648 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 f4)F4EdgK!Je?LI3pEiVa06 + +

Admin Bereich

+

Willkommen Admin !

+ +Logout \ No newline at end of file diff --git a/champions_league.sql b/champions_league.sql new file mode 100644 index 0000000..134f3e9 --- /dev/null +++ b/champions_league.sql @@ -0,0 +1,64 @@ +-- Datenbank erstellen +CREATE DATABASE IF NOT EXISTS champions_league +CHARACTER SET utf8mb4 +COLLATE utf8mb4_unicode_ci; + +USE champions_league; + +-- USERS (Login / Rollen) +CREATE TABLE IF NOT EXISTS users ( + user_id INT AUTO_INCREMENT PRIMARY KEY, + username VARCHAR(50) NOT NULL UNIQUE, + password_hash VARCHAR(255) NOT NULL, + role ENUM('admin','user') NOT NULL DEFAULT 'user' +); + +-- SEASONS (Saison) +CREATE TABLE IF NOT EXISTS seasons ( + season_id INT AUTO_INCREMENT PRIMARY KEY, + name VARCHAR(50) NOT NULL +); + +-- TEAMS (Teilnehmer) +CREATE TABLE IF NOT EXISTS teams ( + team_id INT AUTO_INCREMENT PRIMARY KEY, + name VARCHAR(100) NOT NULL, + country VARCHAR(50), + group_name CHAR(1) +); + +-- PLAYERS (Spieler eines Teams) +CREATE TABLE IF NOT EXISTS players ( + player_id INT AUTO_INCREMENT PRIMARY KEY, + name VARCHAR(100) NOT NULL, + position VARCHAR(30), + team_id INT NOT NULL, + FOREIGN KEY (team_id) REFERENCES teams(team_id) ON DELETE CASCADE +); + +-- MATCHES (Spiele) +CREATE TABLE IF NOT EXISTS matches ( + match_id INT AUTO_INCREMENT PRIMARY KEY, + season_id INT NOT NULL, + home_team_id INT NOT NULL, + away_team_id INT NOT NULL, + match_date DATE, + FOREIGN KEY (season_id) REFERENCES seasons(season_id), + FOREIGN KEY (home_team_id) REFERENCES teams(team_id), + FOREIGN KEY (away_team_id) REFERENCES teams(team_id), + CHECK (home_team_id <> away_team_id) +); + +-- GOAL_EVENTS (Tore + Assists) +CREATE TABLE IF NOT EXISTS goal_events ( + goal_id INT AUTO_INCREMENT PRIMARY KEY, + match_id INT NOT NULL, + scorer_id INT NOT NULL, + assist_id INT, + minute INT NOT NULL, + FOREIGN KEY (match_id) REFERENCES matches(match_id) ON DELETE CASCADE, + FOREIGN KEY (scorer_id) REFERENCES players(player_id), + FOREIGN KEY (assist_id) REFERENCES players(player_id) +); + + diff --git a/dashboard.php b/dashboard.php new file mode 100644 index 0000000..fb2be37 --- /dev/null +++ b/dashboard.php @@ -0,0 +1,13 @@ + + +

Willkommen !

+

Rolle:

+ +Logout \ No newline at end of file diff --git a/db.php b/db.php new file mode 100644 index 0000000..22a2402 --- /dev/null +++ b/db.php @@ -0,0 +1,19 @@ + PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, +]; + +try { + $pdo = new PDO($dsn, $user, $pass, $options); +} catch (PDOException $e) { + die("Datenbankfehler: " . $e->getMessage()); +} \ No newline at end of file diff --git a/login.php b/login.php new file mode 100644 index 0000000..6612175 --- /dev/null +++ b/login.php @@ -0,0 +1,17 @@ + + + + Login - CL Projekt + + +

Login

+ +
+ Benutzername:

+ Passwort:

+ +
+ +Registrieren + + \ No newline at end of file diff --git a/login_process.php b/login_process.php new file mode 100644 index 0000000..bdd1e39 --- /dev/null +++ b/login_process.php @@ -0,0 +1,31 @@ +prepare($sql); +$stmt->execute([$username]); + +$user = $stmt->fetch(); + +if ($user && password_verify($password, $user['password_hash'])) { + + $_SESSION['user_id'] = $user['user_id']; + $_SESSION['username'] = $user['username']; + $_SESSION['role'] = $user['role']; + + // Rollenbasierte Weiterleitung + if ($user['role'] === 'admin') { + header("Location: admin_dashboard.php"); + } else { + header("Location: dashboard.php"); + } + exit(); + +} else { + echo "Falscher Benutzername oder Passwort!"; +} +?> \ No newline at end of file diff --git a/logout.php b/logout.php new file mode 100644 index 0000000..4ca620d --- /dev/null +++ b/logout.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/register.php b/register.php new file mode 100644 index 0000000..8fd6024 --- /dev/null +++ b/register.php @@ -0,0 +1,24 @@ + + + + Registrieren - CL Projekt + + +

Registrierung

+ +
+ Benutzername:

+ Passwort:

+ + Rolle: +

+ + +
+ +Zum Login + + \ No newline at end of file diff --git a/register_process.php b/register_process.php new file mode 100644 index 0000000..8fd6024 --- /dev/null +++ b/register_process.php @@ -0,0 +1,24 @@ + + + + Registrieren - CL Projekt + + +

Registrierung

+ +
+ Benutzername:

+ Passwort:

+ + Rolle: +

+ + +
+ +Zum Login + + \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..2783578 --- /dev/null +++ b/style.css @@ -0,0 +1,57 @@ +body { + margin: 0; + height: 100vh; + font-family: Arial, sans-serif; + background: radial-gradient(circle at top, #0a1a3f, #000814); + display: flex; + justify-content: center; + align-items: center; +} + +.login-container { + background: rgba(255, 255, 255, 0.08); + padding: 40px; + border-radius: 12px; + width: 320px; + text-align: center; + box-shadow: 0 0 30px rgba(0,0,0,0.6); +} + +.logo { + width: 100px; + margin-bottom: 15px; +} + +h2 { + color: #fff; + margin-bottom: 25px; +} + +input { + width: 100%; + padding: 12px; + margin-bottom: 15px; + border-radius: 6px; + border: none; + outline: none; +} + +button { + width: 100%; + padding: 12px; + background: #1e90ff; + border: none; + border-radius: 6px; + color: white; + font-size: 16px; + cursor: pointer; +} + +button:hover { + background: #d3d7dd; +} + +.error { + color: #ff6b6b; + margin-top: 15px; +} diff --git a/teams.php b/teams.php new file mode 100644 index 0000000..e69de29