我使用 CodeIgniter 在 PHP 中的 Web 应用程序上工作,我卡住了:P这很难解释,所以我用一个例子来展示它。
我有正常的代码点火器控制器。在这个控制器中,我有一个这样的函数:
<?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分钟前 这效果很好。现在我创建了一个新的子域"分配"。
现在,如果我没有登录并尝试连接到以下 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 为空而不起作用)。为什么...会这样吗?
问候特风2
我建议你从这里修改 logged_in() 函数:
echo header("Location: /user/login");
对此:
header("Location: /user/login");
exit;
我认为这将解决问题。回声与它无关,只是多余的。
在登录用户时使用 $_session...! 所以即使在刷新和页面更改后,他也会重新登录..!空值不会通过。