我正在尝试将新的Codeigniter动力登录区域集成到子域上托管的旧版(第三方)PHP站点中。
当我设置一个名为' logged_in'在CI区域(意图由CI部分和网站的其他部分使用),Codeigniter总是添加一个领先的'。到域值。
问题是旧版网站为域' dev.example.co.uk '设置并删除了它的Cookie。当它没有销毁“已登录”时,问题会在通过旧网站注销时体现出来。 cookie(可能是因为它设置在不同的域中)。
我已尝试更改默认空白中的CI配置设置:
$config['cookie_domain'] = "";
到实际域名:
$config['cookie_domain'] = "dev.example.co.uk";
或通过以下方式在创建时明确设置:
$this->input->set_cookie('logged_in', 'true', '86500', 'dev.example.co.uk');
或:
$this->input->set_cookie('logged_in', 'true', '86500');
但每当我检查Chrome中的Cookie时,域名值始终显示为' .dev.example.co.uk'。
我意识到CI正在添加'。'为了最大限度地兼容旧版浏览器(如here at php.net/manual所述),但对于这个特定的(虽然不寻常)场景我不需要它。
有没有人知道如何阻止CI添加领先的'。'到域?
答案 0 :(得分:1)
CodeIgniter没有这样做,它可以是setcookie()
本身,也可以只是你的浏览器假设cookie域。如果你想确定两者中的哪一个 - 检查HTTP响应头并查看'Set-Cookie'。
更新
在查看PHP source之后,我可以肯定地说,只是您的浏览器以这种方式显示(或处理)Cookie。