Geizkragen/lib/bootstrap.php

39 lines
1.3 KiB
PHP

<?php
// Zentraler Bootstrap: muss vor jeglicher HTML-Ausgabe inkludiert werden.
// - startet die Session genau einmal
// - setzt sinnvolle PHP-Error-Settings für die Entwicklung
// - lädt die Rollen des eingeloggten Users bei jedem Request
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
if (session_status() !== PHP_SESSION_ACTIVE) {
session_start();
}
// Rollen bei jedem Request aus der DB aktualisieren
if (!empty($_SESSION['user_id'])) {
$__bsConn = new mysqli('localhost', 'FSST', 'L9wUNZZ9Qkbt', 'FSST', 3306);
if (!$__bsConn->connect_error) {
$__bsStmt = $__bsConn->prepare(
'SELECT r.name FROM userRoles ur JOIN roles r ON r.roleID = ur.roleID WHERE ur.userID = ?'
);
if ($__bsStmt) {
$__bsUid = (int)$_SESSION['user_id'];
$__bsStmt->bind_param('i', $__bsUid);
$__bsStmt->execute();
$__bsResult = $__bsStmt->get_result();
$_SESSION['user_roles'] = [];
while ($__bsRow = $__bsResult->fetch_assoc()) {
$_SESSION['user_roles'][] = $__bsRow['name'];
}
$__bsStmt->close();
}
$__bsConn->close();
}
} else {
$_SESSION['user_roles'] = [];
}