2013-09-24 80 views
1

我有一個免費的cookie的子域(靜態),直到我在所有子域使用此代碼,以使我的會話變量可見子域排除一個子域名:如何從共享會話變量

session_set_cookie_params(0,'/','.example.com'); 

顯然,通過這樣做,我已經失去了「靜態」子域的無cookie特性。

我怎麼能有一個會話變量可見的所有子域除了靜態? 謝謝你幫

回答

1

我有類似的問題,因爲你,我想我的解決方案將幫助您的cookie的靜態域。我在下面描述了我的問題和後續解決方案,希望您可以使用它來解決您的問題。

我想2子域共享會話:

  • www.example.com
  • shop.example.com

但是排除會話,並使用其自己的會話

  • admin.example.com

設置會話橫跨兩個領域使用,如你所說,你將不得不設置cookie PARAMS:

session_set_cookie_params(0,'/','.example.com'); 

然而,這將與cookie的admin.example.com會話衝突。

解決方法是在管理站點中設置會話名稱,以便它與其他站點中的會話名稱不同。例如:

session_name("AdminPHPSESSID"); 

有關更多信息,請參見http://www.php.net/session_name

1

可以請你在php.ini文件

對於該cookie有效的域名設置。

session.cookie_domain = "domain" 

OR

ini_set('session.cookie_domain', '.example.com'); 
+0

它有幾個域共享會話,但只有一個域要排除。我應該爲所有共享子域名寫入session.cookie_domain =「domain」嗎? – Ormoz