2011-09-27 25 views
3

我有幾個子域名,比如'a.domain.com','b.domain.com',但是我發現如果我在子域a登錄,session/cookies獲得't在b工作,我必須再次登錄'b.domain.com'如何使會話/ cookies在Yii的所有子域中都可以使用

如何使登錄會話在所有子域中工作?

更新:

我發現每個子域都有不同的會話ID ...

更新:

,我發現我只能在幾個domians像 '板凳' 登錄並'post',但不能登錄'book'和其他域名。真奇怪。

+1

你看看這裏:http://www.yiiframework.com/forum/index.php?/topic/7861-sessions-and -subdomains? – ldg

回答

3


你可以使用PHP的session.cookie_domain值,並將其設置爲你的頂級域名(.domain.com)。通過編輯php.ini或使用ini_set('session.cookie_domain','.domain.com')設置;

祝你好運:)
Shai。

+0

好吧,在我改變了設置之後,我甚至無法登錄......順便說一下,我使用數據庫存儲會話,如果這很在意的話。 – LotusH

+1

存儲會話?你什麼意思?也許你錯了,它應該做的工作。你能粘貼你添加的行嗎?夏嘉曦。 –

8

您可以將其設置在yii config/main.php文件中,就像我一樣。 (我不確定你是否仍然需要更改php.ini文件,但我會說「不」,因爲下面的配置修復了我的問題)。

保護/配置/ main.php

... 
'components' => array( 
    ...   
    'user'=>array(
     ...  
     'identityCookie' => array('domain' => '.mydomain.com', //note dot before domain name 
     // identityCookie same as "session->cookieParams->domain" 
    ), 
    'session' => array(
     'autoStart'=>true, 
     'cookieParams' => array('domain' => '.mydomain.com'), 
    ), 
    ... 
) 
... 
相關問題