0

我一直在查看在 PHP 4 服务器上运行的脚本中的问题(我知道......他们正在升级,但他们需要修复仍在 PHP 4 上的服务器。)

我在下一页开始时将会话变量重置为不同的值时遇到问题。这是我为达到这一点而进行的测试,现在我不确定发生了什么。

页面结构:main.php -> 首先调用 start_page.inc。main.php -> 最后调用 footer.inc。

这是正在发生的步骤以及我无法弄清楚的步骤:

start_page.inc: echos 'test2'(起始页打印出 的值$_SESSION['test']

default.php: echos 'test2'(default.php 打印出 的值$_SESSION['test']

default.php: SET 'test2'(default.php 将值设置$_SESSION['test']test2

footer.inc: SET 'test'(footer.inc 将值设置$_SESSION['test']test

footer.inc: echos 'test'(footer.inc 打印出 的值$_SESSION['test']

无论我刷新页面多少次,它总是以这种方式出现,只有一个例外。第一次设置会话变量时,它test会在下一次刷新时回显。

任何人都了解为什么/如何发生这种情况以及我如何解决这个问题?我在 PHP 5 服务器上测试了这些文件,实际上得到了相同的结果。

前两个回声应该始终是test,除非我遗漏了什么。

我已经尝试将其剥离到没有附加值的测试页面,并且似乎无法重现它......测试变量没有被覆盖。我专门为此测试创建了它。

4

1 回答 1

1

我记得的可能问题是:您没有使用session_start()或远程端不支持或禁用 cookie,如果是第二种情况,您必须使用另一种方式通过PHPSESSID(通常虽然$_GET)。

于 2012-10-06T17:42:47.407 回答