跨子域的Codeigniter会话

时间:2014-03-30 19:02:58

标签: php codeigniter session

我有多个子域名,我试图在子域名中使用这些会话。

http://example.com
http://subdomain.example.com

我还在config.php中设置了cookie域

$config['cookie_domain'] = ".example.com";

在其他域中使用会话userdata和flashdata时为空。我同时使用相同的会话表用于CI实例

3 个答案:

答案 0 :(得分:4)

从以下解决方案:Sharing sessions

必须设置cookie_domain和cookie前缀

$config['cookie_domain'] = ".example.com";
$config['cookie_prefix'] = "example_";

答案 1 :(得分:0)

一楼是对的,但没有明确的原因

理由:来自:https://ellislab.com/forums/viewthread/131851/#651233

CI会话与任何其他会话机制一样,使用cookie来标识会话。它应该是跨域可用的cookie。

对于域名,您需要指定“.domain.com”,而不是“* .domain.com”。

答案 2 :(得分:0)

只需要$config['cookie_domain']部分,$config['cookie_prefix']只是为了让事情干净,或者您有一些子域使用相同的域但不想共享。