我有这个控制器功能:
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中删除登录段吗?
答案 0 :(得分:2)
您可以在检查数据后使用重定向。如果输入正确,则页面重定向到/profile/username
,如果不在同一页面上。
if(<success input check>)
redirect(base_url().'profile/'.$username);
else{
$this->load->view('login');
}
我假设您检查每个页面的授权。