同一会话的不同内容?

时间:2014-06-25 11:04:34

标签: php session-cookies

我在同一个域中有2个php页面。一个在根目录中,另一个在下面是3个文件夹。 A在两个文件中也有以下代码:

[...]
session_start();
var_dump(array('id' => session_id(), 'name' => session_name(), 'content' => $_SESSION));
die();
[...]

id相同,name相同,content不同......

如果我在其中任何一个中执行session_regenerate_id(),则两个页面都会有新的会话ID,但content仍然不同。 清理浏览器缓存并清除所有现有cookie无济于事。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

各种会话设置可能因人而异。请注意,这些可以在php配置,主机配置,per-dir配置(在apache:.htaccess中)设置,但也在代码中设置。

要确定不同之处,在您使用会话的代码中检查ini_get_all('session')的输出可能会显示设置的差异。

根据描述的症状(会话ID对于不同的目录是相同的,但存储的内容不同),最可能的原因是save_handler不同(另一种机制用于存储会话,例如文件与memcached)或save_path不同(另一个位置用于存储会话)。在这种情况下,根据评论,它是save_path

请注意,如果2个目录中的session-id 不同,最可能的原因是cookie_path设置不正确,如果子域名不同,请查看{{1设置。