2010-11-24 199 views
1

我已經在CI中構建了一個站點,並且有一個登錄系統,在Firefox中可以正常工作,但不是Chrome或IE。在這兩個,如果用戶名和密碼是正確的,它只是重定向(我想)回到登錄頁面,而不是登錄錯誤頁面,或網站家(應該)。我注意到它似乎沒有在Chrome中設置cookie,但它在FF中。CodeIgniter Cookie在FF中工作,但不是Chrome或IE

下面是我的控制器,設置cookie和驗證後重定向代碼:

  $newdata = array(
        'username' => $_POST['login_username'], 
        'real_name' => $name, 
        'user_id' => $uid, 
        'logged_in' => TRUE 
       ); 

      $this->session->set_userdata($newdata); 
      //echo $newdata; 
       redirect('/site/index');  

任何想法,爲什麼這可能發生?

謝謝

+0

也許這可以幫助:http://stackoverflow.com/questions/917475/creating-a-cookie-failing-with-safari-chrome-ie-but-working-with-ff – trix 2010-11-24 20:56:36

+0

另一種解決方案可能是這個帖子。 http://stackoverflow.com/a/29114118/1226309 – mariofertc 2015-03-18 04:30:43

回答

2

檢查是否確實設置了$ _SESSION。在CI上,您可能需要正常退出以清除$ this-session中的whats到「真實」會話變量。

添加一個echo序列化($ _ SESSION),讓你知道發生了什麼(在redir之前)。

並檢查如何正常結束Ci請求。

1

對我來說,它解決了只是增加更多時間的cookie,我有3600,所以我改爲7200.似乎是我的生產網站上的時間問題。可以幫助別人。

2

我也遇到過這個問題......會話userdata在Chrome和IE中丟失,但在Firefox上沒問題。這是由於配置的不正確的設置/ config.php文件

我必須明確地設置cookie_domain 讓它在我用這個命令以後AUTOMAGIC ...扯掉CI論壇。

$config['cookie_domain'] = str_replace("http:/","",str_replace("https://","", $config['base_url'])); 

我添加了這一行,一切正常。

1

在我的情況下,問題是$config['base_url']是空的。 所以我將它設置爲我的域名

$config['base_url'] = 'http://yourdomain.com/'; 
0

CI有一些問題,如果餅乾指定域是localhost,我給自己定一個真實域名的名稱結構的假域到主機文件和它的作品。

相關問題