initial commit
This commit is contained in:
50
inc/check_login.php
Executable file
50
inc/check_login.php
Executable 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
10
inc/db.php
Executable 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
5
inc/footer.php
Executable 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
22
inc/head.php
Executable 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
53
inc/menu.php
Executable 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>
|
||||
Reference in New Issue
Block a user