2016-12-30 8 views
0

私はこのコンセプトのセッションとユーザエージェントライブラリを知っています。ログイン後にメンバーを現在のページにリダイレクトする最良の方法(Codeigniter)

例:彼はログインボタンをクリックすると会員は、このURL domain.com/article/news-18565でニュースを読んで、その後どのように(CURRENTURLを取得する)domain.com/article/news-18565

に行くべきdomain.com/loginに行く前に、ログインメンバーの後Form.html

<form action="signin" method="post" accept-charset="utf-8"> 
     <div class="form-group"> 
      <label for="">Email:</label> 
      <input type="text" name="email" value="" class="form-control form-control-lg"> 
     </div> 

     <div class="form-group"> 
      <label for="">Password:</label> 
      <input type="password" name="password" value="" class="form-control form-control-lg"> 
     </div> 

     <div class="form-group"> 
      <input type="submit" name="submit" value="Sign in to your account" class="float-md-right btn btn-primary"> 
     </div> 
    </form> 

Controller.php

function index(){ 

    $user_profile = 'user'; 
    $this->authModel->loggedin() == FALSE || redirect($user_profile); 

    $rules = $this->authModel->rules; 
    $this->form_validation->set_rules($rules); 
    if($this->form_validation->run() == TRUE){ 
     if($this->authModel->login() == TRUE){ 
      redirect($user_profile); 
     }else{ 
      $this->session->set_flashdata('error', 'That email/password combination does not exist'); 
      redirect('signin'); 
     } 
    } 
} 

Model.php

function login(){ 

    $user = $this->get_by(array(
      'email' => $this->input->post('email', TRUE), 
      'password' => $this->hash($this->input->post('password')) 
     ), TRUE); 

    if(count($user)){ 
     $data = array(
      'name' => $user->name, 
      'email' => $user->email, 
      'username' => $user->username, 
      'loggedin' => TRUE 
     ); 
     $this->session->set_userdata($data); 
     return TRUE; 
    } 

} 

答えて

0

だけでなく、あなたはHTTP_REFERERのURLを使用する必要があります。 HTTPリファラURLリダイレクトユーザーは、あなたが言うように訪問したURLを最後にする

例:彼はCURRENTURLを取得する方法を、次にログインボタンをクリックすると会員は、このURLのdomain.com/article/news-18565でニュースを読んでいます() domain.com/loginに行く前に、ログイン後にメンバーはdomain.com/article/news-18565にアクセスする必要があります。

この場合、最後に訪問したURLを確認する必要があります。

$this->session->set_userdata($data); 
if(!empty($_SERVER['HTTP_REFERER'])){ 
    redirect($_SERVER['HTTP_REFERER']); 
} else { 
    // add here the default url for example dashboard url 
} 

は、それはあなたが何か質問がある場合は、私が

を教えて助けるのご希望します
関連する問題