我遇到了一个问题,我会用一个有代表性的场景来解释自己:
我有两个 php 脚本/页面:
测试1.php:
<?php
include_once('test2.php');
session_start();
$id = session_id();
echo "my session id: " .$id.'<br>';
setcookie("SSID", $id);
test();
?>
测试2.php:
<?php
function test() {
echo "session id on test2 <br>";
echo $_COOKIE["SSID"];
}
?>
这是我的问题的一段代表性代码,我想做的是将我的会话 ID 存储在 cookie 中并在第二页中检索它以恢复我的会话。我知道这没有必要。在我的测试服务器中我不需要这样做,但在生产服务器中这是必需的。我无法更改生产服务器的任何配置,因此我必须使代码适应服务器的配置。
我的主要问题是第二个脚本最后一次获取存储在 cookie 中的会话 ID。一个例子:
第一次执行 test1.php 我得到:
my session id: dg2mjk8ros8ajrj3n6i8oa4gj1
session id on test2
vrulbnvvff23bpmm6qbbqbk960
第二次执行 test1.php:
my session id: cj17k0q08mhgpjn9gf0dt0n9i6
session id on test2
dg2mjk8ros8ajrj3n6i8oa4gj1
如您所见,在 test2.php 函数中检索到的 cookie 值是上次使用的,而不是当前的。我被困住了。
我会很感激任何帮助,谢谢。