0

我在禁用 cookie 的情况下传递会话变量时遇到问题。

脚本 1:

session_start();
$_SESSION['x'] =55;

然后我通过 URL 传递会话 ID(我通过改变 php init 设置并明确地将其附加到 URL 进行了尝试),例如:

<a href="abc.php?<?php echo SID; ?>">abc to</a>

脚本 2 abc.php:

session_start();
session_id($_GET['PHPSESSID']);
echo session_id();

我检查了第二个脚本中的 ID,它完全一样。但是当我尝试使用: $_SESSION['x']变量或它print_r$_SESSION显示它没有设置。

4

2 回答 2

2

逆天。经过数小时的搜索,我终于在此处发布此问题的几分钟内找到了解决方案。

顺序应该是:

session_id($_GET['PHPSESSID']);
session_start();

所以首先必须设置 ID,然后会话开始。或者至少看起来是这样。

于 2012-07-22T17:55:32.133 回答
0
echo session_id($_GET['PHPSESSID']);

代替

session_id($_GET['PHPSESSID']);
echo session_id();

session_id() 返回 session_id( string $id ) 所以要么将它存储在 $var 中,要么在我上面的示例中回显它

您是否希望得到与 $_SESSION['x'] = 55; 相同的结果??

于 2012-07-22T17:37:10.170 回答