initial commit

This commit is contained in:
Borgal
2025-08-08 22:15:51 +02:00
commit 03fde990ca
10 changed files with 386 additions and 0 deletions

50
inc/check_login.php Executable file
View File

@@ -0,0 +1,50 @@
<?php
session_start();
include('inc/db.php');
// Funktion zum Löschen von Cookies und Weiterleiten zum Login
function redirect_to_login()
{
setcookie('auth_token', '', time() - 3600, "/");
setcookie('user_id', '', time() - 3600, "/");
$_SESSION = array();
session_destroy();
header("Location: login.php");
exit;
}
// 1. Prüfen, ob bereits eine Session existiert
if (isset($_SESSION['user_id'])) {
return; // Benutzer ist bereits per Session angemeldet.
}
// 2. Ansonsten: Prüfen, ob Cookies vorhanden sind
if (isset($_COOKIE['auth_token']) && isset($_COOKIE['user_id'])) {
$cookie_token = $_COOKIE['auth_token'];
$cookie_user_id = $_COOKIE['user_id'];
// Datenbank-Abfrage, um den Token und die vollständigen Benutzerdaten zu erhalten
$stmt = mysqli_prepare($conn, "SELECT id, login_token, username, role FROM users WHERE id = ?");
if ($stmt) {
mysqli_stmt_bind_param($stmt, "i", $cookie_user_id);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$user = mysqli_fetch_assoc($result);
mysqli_stmt_close($stmt);
// 3. Tokens vergleichen
if ($user && $cookie_token === $user['login_token']) {
// Tokens stimmen überein, Benutzer per Cookie authentifizieren
// Jetzt die Benutzerdaten in die Session laden
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
$_SESSION['role'] = $user['role'];
return; // Authentifizierung per Cookie erfolgreich, Skript fortsetzen
}
}
}
// Wenn weder Session noch gültiger Cookie gefunden wurde
redirect_to_login();

10
inc/db.php Executable file
View File

@@ -0,0 +1,10 @@
<?php
include('inc/secure.php');
// Verbindung herstellen
$conn = mysqli_connect($host, $user, $password, $dbname);
// Verbindung prüfen
if (!$conn) {
die("Verbindung zur Datenbank fehlgeschlagen: " . mysqli_connect_error());
}

5
inc/footer.php Executable file
View File

@@ -0,0 +1,5 @@
<!-- Bootstrap JS Bundle -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

22
inc/head.php Executable file
View File

@@ -0,0 +1,22 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>DoMiLi Farbe der Woche</title>
<!-- Bootstrap-->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Font Google-->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined" rel="stylesheet">
<!-- Custom styles -->
<link rel="stylesheet" href="css/style.css">
</head>
<!-- Farbe über Bootstrap festlegen mit Transparent -->
<!-- <body class="bg-info bg-opacity-10"> -->
<body>
<? include('inc/menu.php') ?>

53
inc/menu.php Executable file
View File

@@ -0,0 +1,53 @@
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container-fluid">
<a class="navbar-brand d-flex" href="#">DoMiLi</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link d-flex active" aria-current="page" href="#"><span class="material-icons md-18 me-1">home</span>Dashboard</a>
</li>
<li class="nav-item">
<a class="nav-link d-flex" href="#"><span class="material-icons md-18 me-1">calendar_month</span>Termine</a>
</li>
<li class="nav-item">
<a class="nav-link d-flex" href="#"><span class="material-icons md-18 me-1">bar_chart</span>Auswertung</a>
</li>
<li class="nav-item">
<a class="nav-link d-flex" href="#"><span class="material-icons md-18 me-1">message</span>Kontakt</a>
</li>
<?php
if (isset($_SESSION['role']) && $_SESSION['role'] == 'admin') {
?>
<li class="nav-item dropdown">
<a class="nav-link d-flex align-items-center dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown"><span class="material-icons md-18 me-1">admin_panel_settings</span>Admin</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="admin_color.php">Farben</a></li>
<li><a class="dropdown-item" href="admin_date.php">Termine</a></li>
<li><a class="dropdown-item" href="admin_users.php">Benutzer</a></li>
</ul>
</li>
<?php
}
?>
</ul>
<ul class="navbar-nav ms-auto">
<li><a class="dropdown-item" href="#"><span class="material-icons align-baseline md-18 me-1">help</span></a></li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown"><span class="material-symbols-outlined align-text-bottom md-18 me-1">person</span><?php echo $_SESSION['username']; ?></a>
<ul class="dropdown-menu dropdown-menu-end">
<li><a class="dropdown-item" href="profil.php"><span class="material-icons text-secondary align-middle md-18 me-1">person</span>Profil</a></li>
<li><a class="dropdown-item" href="pass_change.php"><span class="material-icons text-secondary align-middle md-18 me-1">lock</span>Passwort ändern</a></li>
<li>
<div class="dropdown-divider"></div>
</li>
<li><a class="dropdown-item" href="logout.php"><span class="material-icons align-middle md-18 me-1">logout</span>Log Out</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>