1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
<?php
// controller/cookies.php
// nettoyage du cookie de session de l'ancienne version du site
$cookie = 'PHPSESSID';
if(isset($_COOKIE[$cookie]))
{
deleteCookie($cookie);
header("Location: index.php");
exit();
}
// session_start()
$cookie = 'session_admin';
if(isset($_COOKIE[$cookie])) // détection du cookie
{
if(session_status() === PHP_SESSION_NONE)
{
session_name($cookie);
/*session_set_cookie_params([
'lifetime' => 0,
'path' => '/',
'domain' => $_SERVER['HTTP_HOST'],
'secure' => true,
'httponly' => true,
'samesite' => 'strict']);
session_start();*/
/*session_start([
'cookie_lifetime' => 0,
'cookie_path' => '/',
'cookie_domain' => $_SERVER['HTTP_HOST'],
'cookie_secure' => true,
'cookie_httponly' => true,
'cookie_samesite' => 'strict']);*/
session_start();
// le cookie ne semble pas prendre les paramètres! pourquoi?
//var_dump(session_get_cookie_params());
}
else // cas anormal: session déjà démarrée, mode parano activé!
{
deleteCookie($cookie);
header("Location: index.php");
exit();
}
}
// erreurs affichées au rechargement (lesquelles déjà?)
if(isset($_SESSION['erreur']) && !empty($_SESSION['erreur']))
{
echo('<script>alert(\'' . $_SESSION['erreur'] . '\');</script>');
unset($_SESSION['erreur']);
}
function deleteCookie(string $name)
{
unset($_COOKIE[$name]); // utile?
setcookie($name, '', time() - 4200, '/'); // suppression
// cookie supprimé au prochain chargement de la page
// forcer un rechargement pour effet immédiat
//header("Location: index.php");
//exit();
}
|