Codeigniter redirect()在某些系统上不重定向


Codeigniter redirect() does not redirect on some systems

我确实有一个CI项目,其中的home函数我检查,如果一个cookie已经存在。如果是,用户应该被重定向。例如,这在我的linux机器(Chrome)上工作得很好,但在我的Mac (Chrome)上不行-我不知道为什么。

这是代码:

$session = $this->session->all_userdata();
        if(array_key_exists('id', $session)) {
            redirect(site_url("loggedin"), "refresh");
        } else {
            /* set cookie */

谢谢

首先,我不确定array_key_exists()是否更好,或者isset($_SESSION['id'])是否更好,但无论哪种方式,CI都内置了session->userdata()函数,如果值未设置,则返回FALSE:

if($this->session->userdata('session_id'))
    redirect('loggedin',"refresh");
//rest of code

还要注意,在redirect()函数中不需要site_url()。CI将在默认情况下这样做。但我不确定这是否和你的问题有关。这可能是浏览器错误。redirect('loggedin');(将使用位置重定向)工作吗?