2

我正在使用 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 分钟前,这运作良好。现在我创建了一个新的子域“分配”。

现在,如果我没有登录并尝试连接到以下 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

4

2 回答 2

1

我建议您从这里修改 logged_in() 函数:

echo header("Location: /user/login");

对此:

header("Location: /user/login");
exit;

我认为这将解决问题。回声与它无关,它只是多余的。

于 2013-09-25T15:33:24.087 回答
0

在登录用户时使用 $_session ...!所以即使在刷新和页面更改后他也会保持登录状态..!并且空值不会通过。

于 2013-09-25T14:54:06.357 回答