2013-01-09 69 views
0

我确实有一个CI项目,其中的主函数是我检查的,如果一个cookie已经存在。如果是这样,用户应该被重定向。这适用于我的Linux机器(Chrome),但不适用于我的Mac(Chrome) - 我不知道为什么。Codeigniter重定向()不在某些系统上重定向

这是代码:

$session = $this->session->all_userdata(); 

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

感谢

+1

这两次你在隐身模式下测试页面,以保证你没有设置饼干? –

回答

0

首先,我不知道如果array_key_exists()是更好的,或者如果isset($_SESSION['id'])的,但路CI或者具有这种内置与session->userdata()功能,

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

//rest of code 

还要注意,你不需要:如果该值未设置返回中的redirect()函数。 CI会默认这样做。不过,我不确定是否有任何问题与您的问题有关。它可能是一个浏览器错误。 redirect('loggedin');(将使用位置重定向)是否有效?

+0

是的,'重定向('loggedin');'工作。哦,上帝,一个浏览器的错误? :(我的意思是,这对我来说没有意义,因为Chrome例如应该在所有系统上都是平等的。感谢您的回答! – user1351482

+0

如果它在OSX上的Safari和Firefox上运行,那绝对是Chrome的问题。您的浏览器是最新的,并尝试提交错误报告。此外,您确定您在Linux上使用Chrome,而不是Chromium?Chromium将始终是Chrome上的一小部分版本。 – ChrisMoll

+0

我已经尝试了一次它的工作原理...猜猜它是非常难以解决的其中一个错误:/感谢您的帮助,我会为您提供有关此问题的最新信息 – user1351482