2013-04-18 50 views
3

此代码工作在所有浏览器除了IE 8笨 - cookies不会在Internet Explorer 8

$this->input->set_cookie(array(
          'name' => 'test_cookie', 
          'value' => 'hello from cookie', 
          'expire' => 360000000, 
          'secure' => FALSE 
         )); 

     echo get_cookie('test_cookie'); 

如何解决这个问题的工作吗?为什么不set_cookie?

+1

Cookie未设置?如果你设置它们而不使用codeigniter? – Jeemusu 2013-04-18 07:05:29

+0

你能否确认你的代码适用于FF,CHrome等? – sbaaaang 2013-04-18 09:24:43

+0

此代码适用于所有浏览器! – 2013-04-18 11:09:23

回答

0

尝试:

echo $this->input->cookie('test_cookie'); 
+0

echo $ this-> input-> cookie('test_cookie');它不起作用 – 2013-04-18 11:10:03

0

我使用功能的辅助

function setcookie_ex($name, $value, $expire) 
{ 
    $cookie_path = '/'; $cookie_domain = ''; $cookie_secure = false; 

    // Enable sending of a P3P header 
    header('P3P: CP="CUR ADM"'); 

    if (version_compare(PHP_VERSION, '5.2.0', '>=')) 
     setcookie($name, $value, $expire, $cookie_path, $cookie_domain, $cookie_secure, true); 
    else 
    setcookie($name, $value, $expire, $cookie_path.'; HttpOnly', $cookie_domain, $cookie_secure); 
} 
2

我也有类似的问题,即只有IE浏览器将拒绝接受Cookie解决我的问题。原来计算机的时区设置不正确(未来17小时,服务器在澳大利亚时设置为美国太平洋标准时间),所以发生的情况是该cookie即时过期。

+0

谢谢我刚刚有这个完全相同的问题 - 使用微软提供的开发虚拟机的IE11。时钟上有“正确”的时间,但被设置为美国太平洋标准时间,因此它在过去有效。由于Cookie被忽略,非常难以诊断!我尝试了很多东西,但是你的回答让我检查虚拟机中的时钟。 – scipilot 2013-12-14 07:20:12