我现在考虑session.save_handler = files的情况我在网站根目录下建了两个目录,test1,test2,分别放了两个test.php
test1/test.php
<?php
session_start();
$_SESSION['other1']='other12012';
print_r($_SESSION);
?>
test2/test.php
<?php
session_start();
$_SESSION['other2']='other22012';
print_r($_SESSION);
?>
先后运行这两个文件后,两个cession变量存在一个session文件中:sess_文件里的内容是:other1|s:10:"other12012";other2|s:10:"other22012";
但我发现有时候,同一个网站下的session不存在一个session文件,
比如我在网站下建了一个目录放了一个论坛程序,论坛程序的session总是新建一个session文件,而不是和其他的session共用一个session文件。我希望网站下的所有php程序共用一个session文件

解决方案 »

  1.   

    新建一个公共的包含文件,head.php,此文件中写入session信息,同时被test1,test2中包含。这样,不管目录多少级,只要包含head.php即可传递。
      

  2.   

    我不希望要包含的效果。     我确保是在同一个进程下(同一个浏览器,session周期内)进行的操作。     我先访问test1/test.php,于是产生了sess_文件,在该文件中可以看到产生的session变量。
         接下来再访问test2/test.php,我发现并没有产生新的sess_文件。
         两次访问的session变量保存于一个sess_文件中。     而在有些情况下,在同一进程内的访问,会产生新的sess_文件。
         我希望知道这种情况在什么情况下会发生。
      

  3.   

    我是楼主,我把问题说的更明白一点吧。那就是在www目录下,对于一次访问进程(假设访问了很多目录下的php页面),如何让不同页面内的session变量都存在一个sess文件中。
    不同的访问进程会产生不同的sess文件,所以我针对的是一个访问进程。
      

  4.   

    一个访问者对应一个服务端SESSION文件以及一个维护会话的SESSION-COOKIE存在访问者浏览器里。不知道你希望的是什么呢?http://cn2.php.net/session_id所有页面都使用session_id设置同一个SESSION ID即可保证所有访问者共享同一个SESSION-COOKIE(存有SESION ID),以及它们将访问同一个服务端SESSION文件。
      

  5.   

    不知道session_save_path是不是你想要的