我正在使用会话变量来保存用户在搜索结果中访问的最后一个页面,以便他们可以返回该页面。
如果我做
echo($_SESSION['page'])
在结果页面的末尾,值是正确的,但当我重新加载页面(或加载任何其他页面)时,值会增加1。我在session_start()
调用后立即生成了echo($_SESSION['page'])
,它已经增加了,所以我想它在搜索结果的PHP代码完成运行之前就增加了,但找不到正在这样做的代码行。
为了测试这一点,添加了一个名为$_SESSION['page2']
的新变量,这个新变量也被增加了。
有什么想法吗?
编辑
该变量从类似的Pager对象中获取值
$_SESSION['page'] = $pager->getCurrentPageID();
我找不到任何其他地方将其设置为不同的值。我们在不同的站点使用相同的单元和代码,以前从未遇到过这个问题。尝试用其他站点的代码和Pager类定义替换代码和Pageer类定义,但没有解决问题。
session_start();
在任何东西被响应到浏览器之前都必须被调用,最佳实践是将其作为PHP页面上的第一件东西。
如果你提供更多的代码,给你一个更好的答案是没有问题的。
有关session_start()的详细信息;