2011-11-20 24 views
3

我的Apache public_html根下有2个项目。一个是“/ project1”,另一个是“/ project2”。项目2只是项目1的重复项目,但需要进行一些修改以适应不同的目标。它们具有相同的核心代码,所以使用的会话名称是相同的。怎么来的cookie路径不生效?

我初始化会话这种方式对于项目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管理员也有趣登录

+1

适合我。 Firefox显示具有不同路径和会话ID的两个Cookie。/project1无法在/ project2中看到我的会话内容。你能否验证你的浏览器正在创建单独的cookie? – Wiseguy

+0

@Wiseguy tks对于这个建议,发现它,一切都有正确的cookie路径,但只有一个单一的代码行与cookie路径'/'隐藏在我没有看过的函数中。所以一切都变得像根本 – jondinham

+1

你应该自己回答这个问题,如果你解决了它。它会帮助未来的用户。 – Phil

回答

1

有些浏览器不路径和没有到期喜欢饼干,这样你就可以添加:

ini_set('session.cookie_lifetime', 3600); 

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

session_regenerate_id();