2013-10-10 83 views
0

因此,当会话超时在Codeigniter中工作时,我无法重定向到登录页面。这可能是我的一个很基本的错误,但我用我的控制器代码:Codeigniter中的会话超时重定向

if(!$this->session->userdata('is_logged_in')) { 
    redirect('login/'); 
} 

它的工作原理,只要将用户重定向到登录页面,但保持循环回到登录页。为什么是这样?

+0

我不知道CI,但也许你正在登录页面中执行该代码。 –

回答

1

也许是因为会话中没有数据,称为is_logged_in。如果您查看manual,你会看到存储在会话中的默认数据:

Session数据是什么?

会话,就笨而言,是一个包括下列信息的数组 :

用户的唯一的会话ID(这是一个统计上随机串 具有非常强的熵,与MD5散列以便携带,并且 每五分钟重新生成(默认))用户的IP地址 用户的用户代理数据(浏览器数据的前120个字符 字符串)“最后一次活动”时间戳。

您需要可以设置is_logged_in当用户登录或使用的东西已经在那里像session_idlast_activity

+0

这确实是个问题。感谢Stormdrain。 – duckie715

1

您需要检查用户是否不在登录页面上。这听起来像是在执行请求时执行。

像这样的东西应该这样做:

if(!$this->session->userdata('is_logged_in') && !strstr(current_url(), 'login/')) { 
    redirect('login/'); 
} 

这也可能是,像stormdrain说,会话数据未设置。

相关问题