Codeigniter重定向在IE9中不起作用

时间:2012-07-03 21:32:03

标签: php internet-explorer codeigniter redirect cookies

我在Codeigniter和Internet Explorer上遇到了很大的麻烦。

请查看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 / Chrome。它在所有浏览器中运行IE并且我不知道为什么。

所有内容都按预期运行,直到我调用redirect()方法 - 之后IE浏览器以某种方式无法检索cookie,而所有其他浏览器都可以。

我已经尝试将ci_session更改为ci_session,并检查了准确的服务器时间。

非常感谢您提供任何帮助。

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用$this->input->cookie()方法而不是通过php设置它?

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

答案 1 :(得分:0)

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