2011-11-20 66 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();