0

我已经面临这个问题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(托管)。

4

1 回答 1

1

也许您的 session.cookie_path 配置错误。您可以在 php.ini 中更改它或尝试session_set_cookie_params(0, '/')在开始会话之前使用它进行设置。

于 2012-10-02T19:23:44.933 回答