我遇到了一个问题,就是在两个页面之间失去了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') 之前是解决此问题的快速脏方法,但我想知道为什么会出现这种情况。
谢谢
Will