2013-05-19 159 views
2

會話數據保存在sub.domain.com上,我想在domain.com中使用該數據。從子域共享PHP會話到TLD

我證實它們都具有相同的會話保存路徑(通過回兩個ini_get('session.save_path')

我試圖把對domain.com ini_set('session.cookie_domain', '.sub.domain');,但沒有奏效。 (我也刪除了前面的.)。

我也試過在每個session_start()前加session_set_cookie_params(0, '/', '.domain.com');,但那也沒用。

我希望能夠使用sub.domain.com中設置的domain.com中的$_SESSION數據。

我能做些什麼來使其工作?

謝謝!


更新:我想通了(至少單程)如何做到這一點,但不知道爲什麼我的答案的作品。我想現在我的問題是,爲什麼重命名會話名稱解決了這個問題?使用相同的會話cookie域(?)對我來說更有意義。
好像設置這個域中創建一個新的會話 $_SESSION['domain']

回答

2

加入以下固定這個每個文件(其中「域」是session_name('domain')功能可以互換的。):

session_name("domain"); 
session_set_cookie_params(0, '/', '.domain.com'); 
session_start(); 

有誰知道爲什麼重命名會話修復了這個問題?這是第一行,使這一切工作。