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');
    }
}

成功すると、プロファイルページに移動し、データが表示されます。唯一の問題は、ユーザーが資格情報を入力する前と、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 に答える