0

我有这个控制器功能:

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 中删除登录段吗?

4

1 回答 1

2

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

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

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

于 2013-03-15T08:36:33.760 回答