我确实有一个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');
(将使用位置重定向)工作吗?