Current directory: /home/klas4s23/domains/585455.klas4s23.mid-ica.nl/public_html/Gastenboek/uploads
<?php
require_once __DIR__ . '/functions.php';
start_session();
function current_user(): ?array {
if (!empty($_SESSION['user_id'])) {
$pdo = db();
$stmt = $pdo->prepare("SELECT id, username, role, party_id FROM users WHERE id = :id");
$stmt->execute([':id' => $_SESSION['user_id']]);
$u = $stmt->fetch();
return $u ?: null;
}
return null;
}
function login(string $usernameOrEmail, string $password): bool {
$pdo = db();
$stmt = $pdo->prepare("SELECT id, password_hash, role, party_id FROM users WHERE username = :u OR email = :u LIMIT 1");
$stmt->execute([':u' => $usernameOrEmail]);
$user = $stmt->fetch();
if ($user && password_verify($password, $user['password_hash'])) {
$_SESSION['user_id'] = (int)$user['id'];
$_SESSION['role'] = $user['role'];
$_SESSION['party_id'] = $user['party_id'];
return true;
}
return false;
}
function logout() {
$_SESSION = [];
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
session_destroy();
}
function require_login() {
if (!current_user()) {
redirect('index.php');
}
}
function require_role(string $role) {
require_login();
if (($_SESSION['role'] ?? '') !== $role) {
redirect('index.php');
}
}