Files
smart-house---final-/include/session_check.php

36 lines
1020 B
PHP

<?php
$timeout = 900; // 15 minutes
$usersFile = __DIR__ . '/../users.json.php';
$users = file_exists($usersFile) ? json_decode(file_get_contents($usersFile), true) : [];
// Vérifier si connecté
if (!isset($_SESSION['user'])) {
header("Location: login.php");
exit();
}
// Vérifier si l'utilisateur existe toujours dans users.json.php
if (!isset($users[$_SESSION['user']])) {
session_destroy();
header("Location: login.php?timeout=1");
exit();
}
// Vérifier si le rôle en session correspond toujours au rôle dans users.json.php
if ($_SESSION['role'] !== $users[$_SESSION['user']]['role']) {
$_SESSION['role'] = $users[$_SESSION['user']]['role'];
}
// Vérifier l'inactivité
if (isset($_SESSION['last_activity'])) {
$inactif = time() - $_SESSION['last_activity'];
if ($inactif > $timeout) {
session_destroy();
header("Location: login.php?timeout=1");
exit();
}
}
// Mettre à jour le temps de dernière activité
$_SESSION['last_activity'] = time();