2013-01-09 92 views
0

我確實有一個CI項目,其中的主函數是我檢查的,如果一個cookie已經存在。如果是這樣,用戶應該被重定向。這適用於我的Linux機器(Chrome),但不適用於我的Mac(Chrome) - 我不知道爲什麼。Codeigniter重定向()不在某些系統上重定向

這是代碼:

$session = $this->session->all_userdata(); 

     if(array_key_exists('id', $session)) { 
      redirect(site_url("loggedin"), "refresh"); 
     } else { 
      /* set cookie */ 

感謝

+1

這兩次你在隱身模式下測試頁面,以保證你沒有設置餅乾? –

回答

0

首先,我不知道如果array_key_exists()是更好的,或者如果isset($_SESSION['id'])的,但路CI或者具有這種內置與session->userdata()功能,

if($this->session->userdata('session_id')) 
    redirect('loggedin',"refresh"); 

//rest of code 

還要注意,你不需要:如果該值未設置返回中的redirect()函數。 CI會默認這樣做。不過,我不確定是否有任何問題與您的問題有關。它可能是一個瀏覽器錯誤。 redirect('loggedin');(將使用位置重定向)是否有效?

+0

是的,'重定向('loggedin');'工作。哦,上帝,一個瀏覽器的錯誤? :(我的意思是,這對我來說沒有意義,因爲Chrome例如應該在所有系統上都是平等的。感謝您的回答! – user1351482

+0

如果它在OSX上的Safari和Firefox上運行,那絕對是Chrome的問題。您的瀏覽器是最新的,並嘗試提交錯誤報告。此外,您確定您在Linux上使用Chrome,而不是Chromium?Chromium將始終是Chrome上的一小部分版本。 – ChrisMoll

+0

我已經嘗試了一次它的工作原理...猜猜它是非常難以解決的其中一個錯誤:/感謝您的幫助,我會爲您提供有關此問題的最新信息 – user1351482