PHP会话ID在页面之间更改

wil*_*l69 11 php session

我有一个问题,我在2页之间丢失PHP会话.

session_start()包含在名为session-inc.php的文件中,每个页面都需要设置会话.这适用于站点上的所有页面,除了一个特定页面member-profile.php.访问此页面时,将设置并使用具有不同ID(相同会话名称)的新会话.

更多细节:

  • 会话名称是手动设置的
  • 所有页面都位于同一域名下的同一服务器上
  • 如果我在member-profile.php文件中的include('session-inc.php')上面添加了一个额外的session_start(),则会话被正确地转移
  • 我已尝试在.htaccess中设置session_cookie_domain和session.session_name,这适用于此域,但它已停止将会话传递到付款域
  • 我们用php 5.2.5运行apache 2.2.6

将session_start()放在member-profile.php文件中的include('session-inc.php')上面是对这个问题的快速而肮脏的修复,但我想知道是否有人知道为什么会发生这种情况.

干杯

Ken*_*nan 7

根据PHP文档,session_start必须在将任何输出发送回浏览器之前调用 - 这个页面是否有一个流氓CR/LF,Unicode字节顺序标记或类似的导致输出在您之前include('session-inc.php')