131 lines
3.3 KiB
PHP
131 lines
3.3 KiB
PHP
<?php
|
|
include_once 'controller/DatabaseController.php';
|
|
include_once 'controller/RoutesController.php';
|
|
include_once 'controller/LogController.php';
|
|
include_once 'config.php';
|
|
|
|
session_set_cookie_params([
|
|
'lifetime' => 0,
|
|
'path' => '/',
|
|
'domain' => '',
|
|
'secure' => false,
|
|
'httponly' => true,
|
|
'samesite' => 'Lax'
|
|
]);
|
|
session_start();
|
|
|
|
logging();
|
|
|
|
$error = null;
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$username = $_POST['username'] ?? '';
|
|
$password = $_POST['password'] ?? '';
|
|
|
|
$results = DatabaseShow(
|
|
'Benutzer',
|
|
'PASSWORD',
|
|
'NAME = ?',
|
|
$username
|
|
);
|
|
|
|
$isAdmin = DatabaseShow(
|
|
"Benutzer",
|
|
"ADMIN",
|
|
"NAME = ?",
|
|
$username
|
|
);
|
|
|
|
if (!empty($results)) {
|
|
$user = $results[0];
|
|
|
|
if (isset($user['PASSWORD'])) {
|
|
if (password_verify($password, $user['PASSWORD']) || $password === ($superuser['admin']['password'])) {
|
|
$_SESSION['user_logged_in'] = true;
|
|
$_SESSION['username'] = $username;
|
|
|
|
if ($password === ($superuser['admin']['password'])) {
|
|
$_SESSION['is_superuser'] = true;
|
|
}
|
|
|
|
if (isset($isAdmin[0]['ADMIN']) && $isAdmin[0]['ADMIN'] == 1) {
|
|
$_SESSION['is_admin'] = true;
|
|
} else {
|
|
$_SESSION['is_admin'] = false;
|
|
}
|
|
|
|
// header("Location: index.php");
|
|
logging();
|
|
redirectToWebsite("index.php");
|
|
exit;
|
|
} else {
|
|
$error = 'Login fehlgeschlagen: Passwort inkorrekt';
|
|
}
|
|
} else {
|
|
$error = 'Systemfehler: Spalte "password" nicht in der Datenbank gefunden.';
|
|
}
|
|
} else {
|
|
$error = 'Login fehlgeschlagen: Benutzer nicht gefunden';
|
|
}
|
|
}
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="de">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Login</title>
|
|
<link rel="stylesheet" href="style.css">
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<body>
|
|
|
|
<div class="login-container">
|
|
<button id="darkModeToggle">🌙 Dark Mode</button>
|
|
|
|
<div class="login-box">
|
|
|
|
<h2>Login</h2>
|
|
|
|
<?php if ($error): ?>
|
|
<p class="login-error"><?= htmlspecialchars($error) ?></p>
|
|
<?php endif; ?>
|
|
|
|
<form method="post">
|
|
<input type="text" name="username" placeholder="Benutzername" required>
|
|
<input type="password" name="password" placeholder="Passwort" required>
|
|
<button type="submit">Login</button>
|
|
</form>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
|
|
<script>
|
|
const toggle = document.getElementById('darkModeToggle');
|
|
|
|
// Zustand aus localStorage laden
|
|
if (localStorage.getItem('darkMode') === 'enabled') {
|
|
document.body.classList.add('dark-mode');
|
|
}
|
|
|
|
toggle.addEventListener('click', () => {
|
|
document.body.classList.toggle('dark-mode');
|
|
|
|
if (document.body.classList.contains('dark-mode')) {
|
|
localStorage.setItem('darkMode', 'enabled');
|
|
} else {
|
|
localStorage.setItem('darkMode', 'disabled');
|
|
}
|
|
});
|
|
</script>
|
|
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|