Pb avec $_COOKIE
Résolu
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:
ensuite la page qui fait les tests:
puis la derniere page:
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.
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