1

Codeigniter と Internet Explorer で大きな問題が発生しています。

サンプルページをご覧ください

ここ数日、私を悩ませているのは非常に単純なことです。

ログインボタンを押すと、関数 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");
    }
}

これは、既存の Cookie を確認する userisloggedin() メソッドです。

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

IE と FF/Safari/Chrome の比較を確認してください。IE 以外のすべてのブラウザで動作していますが、その理由はわかりません。

redirect() メソッドを呼び出すまで、すべてが期待どおりに実行されます。その後、IE は何らかの理由で Cookie を取得できませんが、他のすべてのブラウザーは取得できます。

私はすでに ci_session を ci_session に変更しようとしましたが、正確なサーバー時刻も確認しました。

どんな種類の助けにも感謝します。

4

2 に答える 2

0

わかりましたが、自分のコントローラー内でインデックス関数にリダイレクトして、Internet Explorer で Cookie を取得することはできないようです。そのコントローラー内の別のメソッドにリダイレクトすると、機能しています=>redirect('controllername/methodname);

于 2012-07-05T10:37:51.293 に答える
0

$this->input->cookie()php で raw に設定する代わりに、メソッドを使用してみましたか?

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

于 2012-07-04T00:56:38.187 に答える