【问题标题】:How come cookie path doesn't take effect?为什么cookie路径不生效?
【发布时间】:2011-11-20 02:43:04
【问题描述】:

我的 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 的管理员也有趣地登录了。

【问题讨论】:

  • 对我来说很好。 Firefox 显示两个具有不同路径和会话 ID 的 cookie。 /project1 在 /project2 中看不到我的会话内容。您能否验证您的浏览器是否正在创建单独的 cookie?
  • @Wiseguy tks 的建议,找到它,一切都具有正确的 cookie 路径,但只有 1 条代码行,cookie 路径“/”隐藏在我没有查看的函数中.所以一切都变得像根
  • 如果你解决了这个问题,你可能应该自己回答这个问题。它将帮助未来的用户。

标签: php session cookies admin sid


【解决方案1】:

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

ini_set('session.cookie_lifetime', 3600);

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

session_regenerate_id();

【讨论】:

    猜你喜欢
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-18
    • 2018-01-04
    • 2010-11-26
    • 2014-10-05
    相关资源
    最近更新 更多