PHP会话变量正在重置

时间:2012-10-06 17:38:01

标签: php session-variables overwrite

我一直在查看在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,除非我遗漏了一些东西。

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

1 个答案:

答案 0 :(得分:1)

我记得的可能问题是:你没有使用session_start()或者远程端不支持或禁用了cookie,如果第二种情况是你必须使用另一种方式传递{{1 (通常是PHPSESSID)。

相关问题