105 lines
4.5 KiB
PHP
Executable File
105 lines
4.5 KiB
PHP
Executable File
<?php
|
|
require_once 'inc/check_login.php';
|
|
require_once 'inc/db.php';
|
|
|
|
// Variable zur Statusmeldung
|
|
$message = '';
|
|
$message_type = '';
|
|
|
|
// Überprüfen, ob das Formular per POST gesendet wurde
|
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
|
|
|
// Eingaben aus dem Formular holen
|
|
$new_username = $_POST['username'];
|
|
$new_email = $_POST['email'];
|
|
$user_id = $_SESSION['user_id'];
|
|
|
|
// Validierung der Eingaben
|
|
if (empty($new_username)) {
|
|
$message = "Benutzername darf nicht leer sein.";
|
|
$message_type = 'danger';
|
|
} else {
|
|
// Datenbank-Abfrage vorbereiten
|
|
$stmt = mysqli_prepare($conn, "UPDATE users SET username = ?, email = ? WHERE id = ?");
|
|
|
|
if ($stmt) {
|
|
// Parameter binden
|
|
mysqli_stmt_bind_param($stmt, "ssi", $new_username, $new_email, $user_id);
|
|
|
|
// Statement ausführen
|
|
if (mysqli_stmt_execute($stmt)) {
|
|
// Session-Variablen aktualisieren
|
|
$_SESSION['username'] = $new_username;
|
|
$_SESSION['email'] = $new_email;
|
|
$message = "Profil erfolgreich aktualisiert!";
|
|
$message_type = 'success';
|
|
} else {
|
|
$message = "Fehler beim Speichern der Daten.";
|
|
$message_type = 'danger';
|
|
}
|
|
|
|
// Statement schließen
|
|
mysqli_stmt_close($stmt);
|
|
} else {
|
|
$message = "Datenbankfehler: Statement konnte nicht vorbereitet werden.";
|
|
$message_type = 'danger';
|
|
}
|
|
}
|
|
}
|
|
// Daten für die Anzeige aus der Session holen
|
|
$current_username = $_SESSION['username'];
|
|
$current_email = $_SESSION['email'];
|
|
$current_role = $_SESSION['role'];
|
|
|
|
require_once 'inc/header.php'; ?>
|
|
|
|
<div class="container mt-5">
|
|
|
|
<div class="row justify-content-center">
|
|
<div class="col-md-8 col-lg-6">
|
|
<h2 class="mb-4">Benutzerverwaltung</h2>
|
|
<div class="card shadow">
|
|
<div class="card-header bg-primary-subtle text-secondary">
|
|
<h4 class="mb-0">Profil bearbeiten</h4>
|
|
</div>
|
|
<div class="card-body">
|
|
<?php if ($message) : ?>
|
|
<div id="status-message" class="alert alert-<?php echo $message_type; ?> alert-dismissible fade show" role="alert">
|
|
<?php echo htmlspecialchars($message); ?>
|
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
|
</div>
|
|
<?php endif; ?>
|
|
|
|
<form action="" method="post">
|
|
<div class="mb-3">
|
|
<label for="username" class="form-label fw-bold">Benutzername</label>
|
|
<input type="text" class="form-control" id="username" name="username" value="<?php echo htmlspecialchars($current_username); ?>" required>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label for="email" class="form-label fw-bold">E-Mail-Adresse</label>
|
|
<input type="email" class="form-control" id="email" name="email" value="<?php echo htmlspecialchars($current_email); ?>">
|
|
</div>
|
|
<div class="mb-3">
|
|
<label for="role" class="form-label fw-bold">Rolle</label>
|
|
<input type="text" class="form-control" id="role" name="role" value="<?php echo htmlspecialchars($current_role); ?>" disabled readonly>
|
|
</div>
|
|
|
|
<div class="d-flex justify-content-between align-items-center mt-3">
|
|
<div>
|
|
<button type="submit" class="btn btn-sm btn-outline-primary">Speichern</button>
|
|
<a href="index.php" class="btn btn-sm btn-outline-secondary">Abbrechen</a>
|
|
</div>
|
|
<div>
|
|
<form action="logout_all_devices.php" method="post" onsubmit="return confirm('Möchtest du dich wirklich auf allen Geräten abmelden?');">
|
|
<button type="submit" class="btn btn-sm btn-outline-danger">Auf allen Geräten abmelden</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<?php require_once 'inc/footer.php'; ?>
|