PHP会话变量随页面变化


PHP Session variable changing from page to page

我正在使用会话变量来保存用户在搜索结果中访问的最后一个页面,以便他们可以返回该页面。

如果我做

echo($_SESSION['page'])

在结果页面的末尾,值是正确的,但当我重新加载页面(或加载任何其他页面)时,值会增加1。我在session_start()调用后立即生成了echo($_SESSION['page']),它已经增加了,所以我想它在搜索结果的PHP代码完成运行之前就增加了,但找不到正在这样做的代码行。

为了测试这一点,添加了一个名为$_SESSION['page2']的新变量,这个新变量也被增加了。

有什么想法吗?

编辑

该变量从类似的Pager对象中获取值

$_SESSION['page'] = $pager->getCurrentPageID();

我找不到任何其他地方将其设置为不同的值。我们在不同的站点使用相同的单元和代码,以前从未遇到过这个问题。尝试用其他站点的代码和Pager类定义替换代码和Pageer类定义,但没有解决问题。

session_start();

在任何东西被响应到浏览器之前都必须被调用,最佳实践是将其作为PHP页面上的第一件东西。

如果你提供更多的代码,给你一个更好的答案是没有问题的。

有关session_start()的详细信息;