summaryrefslogtreecommitdiff
path: root/controller/cookies.php
blob: f5c7e6400405afc1f86e89699227411f58a44f63 (plain)
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();
}