Compare commits

...
2 Commits
Author SHA1 Message Date
Tower 7fc8621fb9 fix style 2026-01-26 23:08:18 +01:00
Tower ebd93db8b2 update: login / logout 2026-01-26 22:58:23 +01:00
3 changed files with 233 additions and 0 deletions

No files matched your search

+91
View File
@@ -0,0 +1,91 @@
<?php
// Vor allen includes, vor jeglicher Ausgabe
session_set_cookie_params([
'lifetime' => 0, // bis Browser geschlossen
'path' => '/', // Gültig für ganze Domain
'domain' => '', // aktuelle Domain
'secure' => false, // true nur für HTTPS
'httponly' => true,
'samesite' => 'Lax'
]);
session_start();
$error = null;
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'] ?? '';
$password = $_POST['password'] ?? '';
// Beispiel: feste Zugangsdaten
if ($username === 'admin' && $password === 'secret') {
$_SESSION['user_logged_in'] = true;
$_SESSION['username'] = $username;
header("Location: index.php");
exit;
} else {
$error = 'Login fehlgeschlagen';
}
}
?>
<!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>
+6
View File
@@ -0,0 +1,6 @@
<?php
session_start();
session_destroy();
header('Location: login.php');
exit;
+136
View File
@@ -95,3 +95,139 @@ body.dark-mode #darkModeToggle {
background-color: #333;
color: white;
}
.service-group {
margin-bottom: 10px;
}
.group-title {
font-weight: bold;
cursor: pointer;
padding: 5px;
}
.group-services {
margin-left: 10px;
}
.service-group {
margin-bottom: 8px;
}
.group-title {
display: flex;
justify-content: space-between;
align-items: center;
cursor: pointer;
padding: 8px;
font-weight: bold;
user-select: none;
}
.group-title:hover {
background: rgba(0, 0, 0, 0.05);
}
.group-services {
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease;
margin-left: 10px;
}
.service-group.open .group-services {
max-height: 500px;
/* genug für alle Buttons */
}
.arrow {
transition: transform 0.3s ease;
}
.service-group.open .arrow {
transform: rotate(90deg);
}
/* ===== Login Page ===== */
.login-container {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
background-color: #f5f6f8;
}
body.dark-mode .login-container {
background-color: #121212;
}
.login-box {
background-color: white;
padding: 30px 35px;
border-radius: 8px;
width: 320px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
body.dark-mode .login-box {
background-color: #1a1a1a;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6);
}
.login-box h2 {
margin-top: 0;
margin-bottom: 20px;
text-align: center;
}
.login-box input {
width: 100%;
padding: 10px;
margin-bottom: 12px;
border-radius: 4px;
border: 1px solid #ccc;
font-size: 1rem;
}
body.dark-mode .login-box input {
background-color: #333;
border: 1px solid #555;
color: #f0f0f0;
}
.login-box button {
width: 100%;
padding: 10px;
border: none;
border-radius: 4px;
background-color: #007bff;
color: white;
font-size: 1rem;
cursor: pointer;
}
.login-box button:hover {
background-color: #0056b3;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
.login-error {
color: #dc3545;
text-align: center;
margin-bottom: 10px;
}
body.dark-mode .login-box h2 {
color: #f0f0f0;
}
body.dark-mode .login-error {
color: #ff6b6b;
}