Php 如何使会话/cookie在Yii的所有子域中工作

Php 如何使会话/cookie在Yii的所有子域中工作,php,yii,Php,Yii,我有几个子域,如“a.domain.com”、“b.domain.com”,但我发现如果我在子域a登录,会话/cookies在b中无法工作,我必须在“b.domain.com”中再次登录 如何使登录会话在所有子域中工作 更新: 我发现每个子域都有不同的会话id 更新: 我发现我只能登录几个域名,比如“bench”和“post”,但不能登录“book”和其他域名。真奇怪。 您可以使用PHP的session.cookie\u域值并将其设置为顶级域(.domain.com)。通过编辑php.ini或使

我有几个子域,如“a.domain.com”、“b.domain.com”,但我发现如果我在子域a登录,会话/cookies在b中无法工作,我必须在“b.domain.com”中再次登录

如何使登录会话在所有子域中工作

更新:

我发现每个子域都有不同的会话id

更新:

我发现我只能登录几个域名,比如“bench”和“post”,但不能登录“book”和其他域名。真奇怪。


您可以使用PHP的session.cookie\u域值并将其设置为顶级域(.domain.com)。通过编辑php.ini或使用ini_set('session.cookie_domain','.domain.com')设置

祝你好运:)

Shai.

您可以像我一样在yiiconfig/main.php文件中设置它。(我不确定您是否仍然需要更改php.ini文件,但我会说“不”,因为下面的配置修复了我的问题)

protected/config/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'),
    ),
    ...
)
...

嗯,在我改变设置后,我甚至不能登录。。。顺便说一下,我使用数据库来存储会话,如果需要的话。存储会话?什么意思?也许你把它改错了,应该可以。你能把你添加的行粘贴到哪里吗?你看了这里吗:?