不同文件夹中的独立cookie


Independent cookies in different folders

我在三个不同的文件夹中有三个index.php文件,其中每个文件夹(除了基本文件夹)都是另一个文件夹中的子文件夹。每个文件都应该有自己的$_SESSION数组,并且不应该被另一个路径/文件覆盖。

我只是假设情况会是这样,然而,创建了以下测试脚本,发现事实并非如此。

我还发现,与每个路径关联的会话cookie是域"myDomain.com"和路径"/"。

确保目录树中的每个文件都有自己的会话的最佳方法是什么?

/var/www/html/main.php

<ul>
    <li><a href="/testing/cookies">base</a></li>
    <li><a href="/testing/cookies/path1">path1</a></li>
    <li><a href="/testing/cookies/path1/path2">path2</a></li>
</ul>
<?php
session_start();
echo('<h1>'.$name.'</h1>');
echo('<pre>'.print_r($_SESSION,1).'</pre>');
$_SESSION['test']=$name;
?>

/var/www/html/index.php

<?php
$name='/';
require('main.php')
?>

/var/www/html/path1/index.php

<?php
$name='/path1';
require('../main.php')
?>

/var/www/html/path1/path2/index.php

<?php
$name='/path1/path2';
require('../../main.php')
?>

在调用session_start()之前,您可以通过调用session_save_path($path)来设置备用路径

更多信息:

http://php.net/manual/ru/function.session-save-path.php