当通过 url 字符串收到 session ID 时,PHP session 变量不向前传递

PHP session variable not passing forward when session ID is received through url string

由于跨站点session管理,我首先通过url发送了session id。请注意我创建了一个 $username 变量。第一个代码只是一个较大代码的快照。

ini_set("session.use_cookies",0);
ini_set("session.use_trans_sid",1);
session_start();
$session_id = $username;
header("location: http://somedomain.com/receive.php?session_id=". $session_id );

现在我在这里收到它并创建了一个新的 session 我已经在同一站点转发了 session 变量:

ini_set("session.use_cookies",0);
ini_set("session.use_trans_sid",1);
session_id($_GET['session_id']);
$some_var=session_id();
session_destroy();
session_start();
$_SESSION["var_name"] = $some_var;
//echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>';
header("location: anotherfile.php");

当我取消注释上面的 echo 行并注释 header 行时,我可以成功看到 session 数组。但是当我将它传递给 anotherfile.php 时,我松开了 session.

session_start();
echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>';

为什么我无法在上一个文件中获取 session 的任何帮助。

更改第二个文件

   <?php
        ini_set("session.use_cookies",0);
        ini_set("session.use_trans_sid",1);
        session_id($_GET['session_id']);
        $some_var = session_id(); // remove session_destroy code because no        session is set before.
        session_start();
        $_SESSION["var_name"] = $some_var;
        header("location: anotherfile.php");

到这个就好了

   <?php

        session_id($_GET['session_id']);
        $some_var = session_id(); // remove session_destroy code because no        session is set before.
        session_start();
        $_SESSION["var_name"] = $some_var;
        header("location: anotherfile.php");