Pb avec $_COOKIE

Résolu
lamouchetsetse Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   -  
lamouchetsetse Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j’ai créer un petit script pour protéger mes session inspirer de ce tuto:

https://openclassrooms.com/fr/courses/2091901-protegez-vous-efficacement-contre-les-failles-web/2918871-les-variable-de-session

mais il ne fonctionne que partiellement.

voici le script:

tout commence avec cette page:
<?php
//indexTestNav.php

include("testNav.php");
 
if(empty($_COOKIE['un']))
{
    echo 'pas de cookie<br/>';
    demarre_session();
}
elseif(isset($_COOKIE['un']))
{
    verif_session();
}
?>
 
<!DOCTYPE html>
<html>
    <head>
        <title>indexTestNav</title>
        <meta charset="utf-8"/>
    </head>
    <body>
        <header>
          <h1>indexTestNav</h1>
        </header>
        <section>
            <a href="testNav2/testNav2.php">testNav2.php</a><br/><br/>
        </section>
    </body>
</html>


ensuite la page qui fait les tests:

<?php
//testNav.php

session_start();
 
if(empty($_SESSION['test']))
{
    $_SESSION['test'] = 0;
    //echo 'pas de cookie<br/>';
}
 
function demarre_session()
{
    $cookie_name = 'un';
    $plusPlus = $_SESSION['test']++;
    setcookie($cookie_name, $plusPlus, time() + 60 * 30, null, null, false, true);
    $_SESSION['un'] = $plusPlus;
    //exit();
 }
 
function verif_session()
{
    echo '   2$_COOKIE[un] => '.$_COOKIE['un'].'<br/>';
    echo '   2$_SESSION[un] => '.$_SESSION['un'].'<br/><br/>';
 
    if(isset($_COOKIE['un']) && isset($_SESSION['un']) && $_COOKIE['un'] == $_SESSION['un'])
    {
        demarre_session();
    }
    else/*if(isset($_COOKIE['un']) && isset($_SESSION['un']) && $_COOKIE['un'] != $_SESSION['un'])*/
    {
        echo 'session et cookie sont !=<br/><br/>';
    }
}
?>


puis la derniere page:

<?php
//testNav2.php

include("../testNav.php");
 
verif_session();
?>
 
<!DOCTYPE html>
<html>
    <head>
        <title>testNav2</title>
        <meta charset="utf-8"/>
    </head>
    <body>
        <header>
          <h1>testNav2</h1>
        </header>
        <section>
            <a href="../indexTestNav.php">indexTestNav.php</a><br/><br/>
        </section>
    </body>
</html>


Le problème ce trouve sur la dernière page, mes variables cookie et session ne sont jamais égales. Par contre sur la première page "indexTestNav.php" c'est toujours bon.

J'ai effectué ce test en aillant tout les fichier dans le même répertoire et la pas de soucis, ça marche dans tout les cas.

Ma question donc, comment faire pour que ça fonctionne quelque soit le répertoire ou ce trouvent les fichiers?

Merci beaucoup.



Configuration: Linux / Firefox 66.0

1 réponse

lamouchetsetse Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   2
 
c'est bon, j'ai trouvé la réponse, il suffit de mettre ub "/" dans les paramètres de création du cookie pour qu'il soit disponible dans tout les répertoire comme ceci:
setcookie('monCookie', 0, time() - 10, "/", null, false, true);
0