2013-04-18 82 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