当重定向到不同的文件夹时,php $ _SESSION为空

时间:2012-10-02 18:43:18

标签: php session

我现在已经面临这个问题6个小时了。

为了简单起见,我创建了一些代码来模拟我遇到的问题。

说,我有以下文件结构:

  • 路径/
    • folderA /
    • test_sessionA.php
    • FolderB中/
      • 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(托管)。

1 个答案:

答案 0 :(得分:1)

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