3

我的 Apache public_html 根目录下有 2 个项目。一个是“/project1”,另一个是“/project2”。项目 2 只是项目 1 的副本,但进行了一些修改以适应不同的目标。它们具有相同的核心代码,因此使用的会话名称相同。

我以这种方式为项目 1 初始化会话:

ini_set("session.cookie_path","/project1");
session_name("sid");
session_start();

与项目 2 非常相似:

ini_set("session.cookie_path","/project2");
session_name("sid");
session_start();

cookie 路径不相等,因此即使使用相同的 cookie 名称(这里是 'sid'),PHP 也应该能够区分它们。

但有趣的是,当项目 1 的管理员登录时,项目 2 的管理员也有趣地登录了。

4

1 回答 1

1

有些浏览器不喜欢带有路径且没有过期的cookies,所以你可以添加:

ini_set('session.cookie_lifetime', 3600);

会话 cookie 仅由 PHP 发送一次(如果丢失),然后强制 PHP 重新发送 cookie,并更新过期时间,在session_start()之后,您可以添加:

session_regenerate_id();
于 2011-11-24T18:37:58.990 回答