我正在使用CodeIgniter使用Twitter和Facebook为我的网站设置一些用户登录功能,这部分工作正常,会话正常。
当我尝试设置cookie时,它不起作用
//Setup a guid
$guid = uniqid();
//Setup a random cookie and point it to db user
$cookie = array(
'name' => 'TheCookieName',
'value' => $guid,
'expire' => 100,
'domain' => BASE_URL,
'secure' => TRUE
);
set_cookie($cookie);
var_dump(get_cookie('TheCookieName')); // bool(false)
我的自动加载文件很简单
$autoload['helper'] = array('paging_helper','url','cookie');
我显然错过了一些微不足道的事情?任何线索?
由于
答案 0 :(得分:2)
问题可能在您的域变量中 BASE_URL不是CI常量的一部分,可能不包含您期望的内容或cookie初始化所需的内容。
尝试这样做:
//Setup a guid
$guid = uniqid();
//Setup a random cookie and point it to db user
$cookie = array(
'name' => 'TheCookieName',
'value' => $guid,
'expire' => 86500, // have a high cookie time till you make sure you actually set the cookie
'domain' => '.example.org', // the first . to make sure subdomains isn't a problem
'path' => '/',
'secure' => TRUE
);
set_cookie($cookie);
请记住,在提出新请求之前,Cookie永远不可用。
重定向到Cookie设置中指定的域上的其他页面并再次检查Cookie。
答案 1 :(得分:2)
确保您设置 secure =>仅适用于https
的TRUE答案 2 :(得分:1)
您无法在同一实例中设置和访问Cookie。您应该在设置cookie或刷新后重定向。这就是var_dumping get_cookie总是返回false的原因。您还应该设置其余参数。 见setcookie