URL重定向总是不起作用?

时间:2013-09-25 14:50:47

标签: php codeigniter redirect if-statement

我正在使用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

2 个答案:

答案 0 :(得分:1)

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

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

对此:

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

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

答案 1 :(得分:0)

在用户登录时使用$ session!因此即使刷新和更改页面后他仍会保持登录状态..!空值不会过去。