当通过 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");
由于跨站点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");