une session admin dure -vraiment- 24h désormais

This commit is contained in:
Esenjin 2025-01-06 23:53:46 +01:00
parent 9d375850f6
commit 57548ab658
9 changed files with 29 additions and 7 deletions

@ -1,13 +1,7 @@
<?php
require_once 'fonctions.php';
session_start();
$timeout = 86400;
if (isset($_SESSION['last_activity']) && time() - $_SESSION['last_activity'] > $timeout) {
session_destroy();
header('Location: admin.php?action=login');
exit;
}
$_SESSION['last_activity'] = time();
checkAdminSession();
// Vérifier si un utilisateur est connecté
function checkAuth() {

@ -7,6 +7,7 @@ if (!isset($_SESSION['admin_id'])) {
header('Location: admin.php?action=login');
exit;
}
checkAdminSession();
// Récupérer le chemin courant
$currentPath = isset($_GET['path']) ? $_GET['path'] : './liste_albums_prives';

@ -7,6 +7,7 @@ if (!isset($_SESSION['admin_id'])) {
header('Location: admin.php?action=login');
exit;
}
checkAdminSession();
// Récupérer le chemin courant
$currentPath = isset($_GET['path']) ? $_GET['path'] : './liste_albums';

@ -6,6 +6,7 @@ if (!isset($_SESSION['admin_id'])) {
header('Location: admin.php?action=login');
exit;
}
checkAdminSession();
// Gérer la génération de lien de partage
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'generate_link') {

@ -6,6 +6,7 @@ if (!isset($_SESSION['admin_id'])) {
header('Location: admin.php?action=login');
exit;
}
checkAdminSession();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$action = $_POST['action'] ?? '';

@ -2,6 +2,7 @@
require_once 'fonctions.php';
session_start();
checkAdminSession();
// Variables pour stocker les messages
$successMessage = null;

@ -3,6 +3,27 @@
define('PROJECT_ROOT_DIR', 'test-ico');
define('ALLOWED_EXTENSIONS', ['jpg', 'jpeg', 'png', 'gif']);
// Configuration de la durée de session
ini_set('session.gc_maxlifetime', 86400);
session_set_cookie_params(86400);
// Nouvelle fonction de vérification de session
function checkAdminSession() {
// Ne pas vérifier si on est déjà sur la page de login
if (basename($_SERVER['PHP_SELF']) === 'admin.php' && isset($_GET['action']) && $_GET['action'] === 'login') {
return;
}
$timeout = 86400;
if (!isset($_SESSION['admin_id']) ||
(isset($_SESSION['last_activity']) && time() - $_SESSION['last_activity'] > $timeout)) {
session_destroy();
header('Location: admin.php?action=login');
exit;
}
$_SESSION['last_activity'] = time();
}
/**
* Obtient l'URL de base du site
* @return string L'URL de base du site

@ -6,6 +6,7 @@ if (!isset($_SESSION['admin_id'])) {
header('Location: admin.php?action=login');
exit;
}
checkAdminSession();
// Gérer les soumissions du formulaire
if ($_SERVER['REQUEST_METHOD'] === 'POST') {

@ -6,6 +6,7 @@ if (!isset($_SESSION['admin_id'])) {
header('Location: admin.php?action=login');
exit;
}
checkAdminSession();
// Vérifier que c'est bien le premier administrateur
$db = new SQLite3('database.sqlite');