2012-09-23 85 views
2

我試圖設置我的PHP $ _SESSION,並讓它在所有子域中都可用。除非嘗試從根域檢索會話(www),否則此工作正常。

如果我發起會話,而在WWW那麼它將與任何子域名不份額。如果我在子域上啓動會話,它將而不是共享www

我有session_set_cookie_params(的index.php)和session.cookie_domain(php.ini中)正確設置爲.domain.com

當我回聲$ _COOKIE [ 「PHPSESSID」]在WWW我得到一個與所有子域上使用的字符串不同的字符串。所有子域對於$ _COOKIE [「PHPSESSID」]具有相同的值。

我希望能夠啓動會話www並且能夠在所有子域上使用該會話。有沒有解決這個問題的方法?

謝謝你的任何和所有幫助。

+0

在'setcookie'中有'domain'參數 - 你是否明確設置了它? – andrewsi

+0

請將具體的php.ini設置添加到問題以及'session_set_cookie_params'的調用和數據中。該「代碼」丟失。此外,我認爲這個問題已被問及更早,可能是這樣的:[子域會話問題](http://stackoverflow.com/questions/5458559/subdomain-session-issue) – hakre

回答

3

嘗試爲會話設置一個名稱

會話名稱( 「域」);

設置會話cookie參數之前。

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

爲什麼你叫會話「域」? – Gumbo

+0

你爲什麼建議嘗試?試試這個的理由是什麼? – hakre

+0

@Gumbo:你可以任何命名。 – MWC