| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/clients/client2/arni-solutions.de/web/slot/includes/ |
Upload File : |
<?php
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
require_once __DIR__ . '/db.php';
require_once __DIR__ . '/functions.php';
function current_user(): ?array {
if (empty($_SESSION['user_id'])) {
return null;
}
static $cached = null;
if ($cached && (int)$cached['id'] === (int)$_SESSION['user_id']) {
return $cached;
}
$stmt = db()->prepare('SELECT * FROM users WHERE id = ? LIMIT 1');
$stmt->execute([(int)$_SESSION['user_id']]);
$user = $stmt->fetch();
if (!$user) {
logout_user();
return null;
}
$cached = $user;
return $cached;
}
function require_login(): array {
$user = current_user();
if (!$user) {
header('Location: login.php');
exit;
}
return $user;
}
function login_user(array $user): void {
$_SESSION['user_id'] = (int)$user['id'];
$_SESSION['last_ping_ts'] = time();
db()->prepare('UPDATE users SET last_login_at = NOW(), last_seen_at = NOW() WHERE id = ?')->execute([(int)$user['id']]);
}
function logout_user(): void {
$_SESSION = [];
if (ini_get('session.use_cookies')) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000, $params['path'], $params['domain'], (bool)$params['secure'], (bool)$params['httponly']);
}
session_destroy();
}