Codeigniter URL应根据页面进行更改

时间:2013-03-15 08:30:00

标签: codeigniter codeigniter-2

我有这个控制器功能:

public function login()
{
                            .......
        if ($this->form_validation->run() == FALSE)
        {
            $this->load->view('login');
        }
        else
        {
            if(isset($username) && isset($password))
            {

                if(isset($result) && $result->num_rows() > 0)
                {
                    $result = $result->result_array(); 
                    $data['result'] = $result;

                    $this->session->set_userdata($data);
                            $this->load->view('profile', $data);
                }else{
                    show_error('Authentication was not successful!');
                }   
            }
        }

    }else{
        $this->load->view('login');
    }
}

成功后,它会转到个人资料页面并显示数据。唯一的问题是,在用户输入凭据之前显示的URL和加载profile.php后的URL是相同的,即domain.com/profile/login。我希望在登录成功后,登录的用户的用户名显示为:domain.com/profile/username。这可能吗?如果没有,至少可以从URL中删除登录段吗?

1 个答案:

答案 0 :(得分:2)

您可以在检查数据后使用重定向。如果输入正确,则页面重定向到/profile/username,如果不在同一页面上。

if(<success input check>)
    redirect(base_url().'profile/'.$username);
else{
    $this->load->view('login');
}

我假设您检查每个页面的授权。