我正在尝试跨多个页面使用会话变量。但是,当我从设置它们的原始页面转到服务器上的另一个页面时,这些变量就会消失。我已经确认变量最初是在第一页上设置的,但是当我尝试在后续页面上访问它们时,它们没有任何价值。如果我访问session_id()
它与我在第一页上设置的不同。
这是我正在尝试做的简化版本:(设置会话变量的第一页)
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
session_start();
$_SESSION['id'] = session_id();
header('Location: pagetwo.php');
die();
?>
(我尝试访问会话变量的第二页)
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
session_start();
echo "SESSION[id] = ".$_SESSION['id']."<br>";
?>
$_SESSION['id']
返回空白,我有一个输出错误说明:
注意:未定义索引:第 5 行 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\pagetwo.php 中的 id
现在事情变得有点奇怪了。并非所有浏览器都会出现这种情况(仅 IE8 和 Firefox 3)。我能够访问 Chrome 15 和 Firefox 7 中的会话变量。此外,我有两个运行 Apache 和 PHP 的不同服务器。我遇到这些问题的服务器运行 PHP 5.2.17,但是,当我的其他服务器运行 PHP 5.2.9 时,我可以访问所有浏览器类型中所有页面的会话变量。
看起来两台服务器之间的 PHP.ini 文件会有所不同,但是它们之间的会话设置是相同的。
我不确定其他人是否遇到过类似的问题,即 IE8 无法访问 PHP 5.2.17 中的会话变量,但我在过去两天搜索了表单,但找不到其他类似的东西。我希望我只是错过了一些非常简单的东西,有人可以指出我正确的方向。