PHP:重定向后会话值为null

时间:2014-04-02 13:57:40

标签: php session typo3

我进行了AJAX调用以登录我的TYPO3用户。一切都很好。 我还写了一些会话值。成功登录后,我有这个会话:

array(10) {
    ["loggedin"]=>
          int(1)
    ["user"]=>
          string(15) "Thomas Helmrich"
    ["kdnr"]=>
          string(3) "N/A"
    ["email"]=>
          string(15) "Thomas Helmrich"
    ["bereich"]=>
          string(3) "all"
    ["name"]=>
          string(0) ""
    ["intern"]=>
          int(1)
    ["nickid"]=>
          string(4) "4734"
    ["chatadmin"]=>
          int(1)
    ["spezialforum"]=>
          int(0)
}

但重定向后,例如

header("Status: 301 Moved Permanently");
header("Location:".$redirect_url);
exit();

为空

array(14) {
  ["loggedin"]=>
  NULL
  ["user"]=>
  NULL
  ["password"]=>
  NULL
  ["kdnr"]=>
  NULL
  ["email"]=>
  NULL
  ["bereich"]=>
  NULL
  ["name"]=>
  NULL
  ["chatadmin"]=>
  NULL
}

我目前不知道为什么值为null

由于

2 个答案:

答案 0 :(得分:0)

即使启用了session.use_trans_sid,也不会使用Location标头传递会话ID。它必须使用SID常量手动传递。

来自:http://www.php.net/manual/en/function.header.php最后一个注释。

答案 1 :(得分:0)

尝试这样的事情(将URL添加到URL):

header("Status: 302 Found");
header("Location:".$redirect_url.'?'.session_name().'='.session_id());
exit();

只有在您的客户不允许使用Cookie时才需要这样做。

但是:真的必须永久地进行重定向"?也许,302会做得更好......?