我已经面临这个问题6个小时了。
为了简单起见,我创建了一些代码来模拟我遇到的问题。
说,我有以下文件结构:
- 小路/
- 文件夹A/
- test_sessionA.php
- 文件夹B/
- test_sessionB.php
test_sessionB.php:
<?php session_start();
$_SESSION['test'] = 'session';
header('Location: ../test_sessionA.php');
test_sessionA.php:
<?php session_start();
var_dump($_SESSION);
session_destroy();
使用上述结构 test_sessionA.php 将输出空数组。但是,如果我将 test_sessionA.php 移动到与 test_sessionB.php 相同的文件夹,它将输出正确的值。
你们找到解决这个问题的方法了吗?谢谢。
更新:
尝试以下但未成功:
session_set_cookie_params(0, '/')
在开始会话之前添加- 使用绝对网址重定向
header('Location: http://domain.org/path/test_sessionA.php')
服务器配置可能有问题,因为这些代码在我的本地机器上运行良好。PHP 版本为 5.3.8(本地)和 5.2.17(托管)。