Menu

Pb avec $_COOKIE [Résolu]

Messages postés
61
Date d'inscription
samedi 2 août 2014
Statut
Membre
Dernière intervention
7 mai 2019
-
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
Afficher la suite 

Votre réponse

1 réponse

Messages postés
61
Date d'inscription
samedi 2 août 2014
Statut
Membre
Dernière intervention
7 mai 2019
1
0
Merci
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);
Commenter la réponse de lamouchetsetse