我在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,并检查了准确的服务器时间。
非常感谢您提供任何帮助。
答案 0 :(得分:0)
您是否尝试过使用$this->input->cookie()
方法而不是通过php设置它?
答案 1 :(得分:0)
好的灵魂似乎是,您无法在自己的控制器中重定向到索引功能,并使用Internet Explorer检索其中的cookie。当您重定向到该控制器中的另一个方法时,它正在工作=> redirect('controllername/methodname);