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

您是否尝试过使用这些$this->input->cookie()方法而不是通过 php 将其设置为原始?

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

于 2012-07-04T00:56:38.187 回答
0

好吧,灵魂似乎是,你不能在你自己的控制器中重定向到你的索引函数并用 Internet Explorer 检索那里的 cookie。当您重定向到该控制器中的另一个方法时,它正在工作=>redirect('controllername/methodname);

于 2012-07-05T10:37:51.293 回答