我有一个问题,我在 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,这适用于该域,但它阻止了会话传递到支付域
- 我们正在运行 apache 2.2.6 和 php 5.2.5
将 session_start() 放在 member-profile.php 文件中的 include('session-inc.php') 之上是解决此问题的快速而肮脏的方法,但我想知道是否有人知道为什么会发生这种情况。
Cheers
Will
根据 PHP 文档,session_start http://php.net/manual/en/function.session-start.php必须在任何输出发送回浏览器之前调用 - 该页面是否有恶意的 CR/LF、Unicode 字节顺序标记或类似的标记,从而在您之前导致输出include('session-inc.php')
?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)