我有多个子域名,我试图在子域名中使用这些会话。
http://example.com
http://subdomain.example.com
我还在config.php中设置了cookie域
$config['cookie_domain'] = ".example.com";
在其他域中使用会话userdata和flashdata时为空。我同时使用相同的会话表用于CI实例
答案 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']
只是为了让事情干净,或者您有一些子域使用相同的域但不想共享。