2012-07-03 59 views
1

我在Codeigniter和Internet Explorer中遇到了很大的麻煩。Codeigniter重定向在IE9中不起作用

請大家看看sample page

這是很簡單的東西困擾我的最後幾天。

按下登錄鍵我什麼都不做更多,但調用一個函數的start()

public function start() 
{ 
    setcookie('loginstatus', TRUE, time()+7200); // setting a cookie 

    redirect('stream', 'location'); // redirecting to the index controller 
} 

在索引功能我執行以下操作:

public function index() 
{ 
    if ($this->isuserloggedin() == TRUE) 
    { 
    echo "The user is already logged in"; 
    $this->load->view("v_stream_start"); 
    } else { 
    echo "The user still has to login"; 
    $this->load->view("v_stream_login"); 
    } 
} 

這裏的userisloggedin()方法,我檢查現有的cookie:

public function isuserloggedin() { 
if (isset($_COOKIE['loginstatus'])) { 
    return TRUE; 
} else { 
    return FALSE; 
    } 
} 

請檢查IE與FF/Safari/Chr青梅。它在所有的瀏覽器中工作,免除IE,我不知道爲什麼。

一切都按預期運行,直到我調用redirect()方法 - 之後,IE以某種方式無法在所有其他瀏覽器都可以檢索到Cookie的情況下執行該操作。

我已經嘗試將ci_session更改爲ci_session,並且還檢查了準確的服務器時間。

非常感謝您的幫助。

回答

0

您是否嘗試過使用$this->input->cookie()方法,而不是通過PHP將其設置爲raw?

http://codeigniter.com/user_guide/libraries/input.html

+0

是的,那是我從哪裏來的,鬥爭已經開始。有人指責我回到本地PHP cookie處理,但這也不起作用... – MrBr

+0

尋找可能中斷它的空白..? – dmp

+0

cookie名稱中的空白還是在哪裏? – MrBr

0

好了soultion似乎是,你不能將自己的控制器到你的指數函數中重定向並與Internet Explorer retreive餅乾那裏。當你重定向到該控制器內的另一種方法時,它正在工作=>redirect('controllername/methodname);