我正在使用CodeIgniter在PHP上进行Web应用程序,并且我卡住了:P 它很难解释,所以我用一个例子来说明。
我有正常的CodeIgniter控制器。在这个控制器中我有这样的功能:
<?php
public function groups($subdomain ='') {
$this->load->library('MyLogin');
$user_id = $this->mylogin->logged_in();
if ($subdomain == '') {
.....
} elseif ($subdomain == 'create') {
.....
} elseif ($subdomain == 'join') {
.....
} elseif ($subdomain == 'leave') {
.....
} elseif ($subdomain == 'assign') {
.....
} else {
.....
}
}
logged_in函数检查加载此页面的用户(子页面)是否已登录。如果不是,他会自动重定向到logged_in函数中,如下所示:
echo header("Location: /user/login");
5分钟前,这种方法运作良好。现在我创建了一个新的子域'assign'。
现在,如果我没有登录并尝试连接到以下URL之一,我总是被重定向
localhost/user/groups
localhost/user/groups/2
localhost/user/groups/create
localhost/user/groups/join
localhost/user/groups/leave
但如果我正在连接
localhost/user/groups/assign
他试图加载此页面(因为$ user_id为空,所以不起作用)。 为什么......这会发生吗?
关心Teifun2
答案 0 :(得分:1)
我建议您修改logged_in()函数:
echo header("Location: /user/login");
对此:
header("Location: /user/login");
exit;
我认为这样可以解决问题。回声与它无关,它只是多余的。
答案 1 :(得分:0)
在用户登录时使用$ session!因此即使刷新和更改页面后他仍会保持登录状态..!空值不会过去。