2016-04-24 68 views
0

我的框架是codeigniter。如何使用CodeIgniter發送參數和重定向

我想做到這一點: 當用戶沒有登錄並點擊一個url不具有足夠的權限看到它,我想通過當前url用戶重定向到login頁和login後,我重定向用戶到以前的url

例如:

//user is not login and click on below `url`. I want to keep `profile` address 
//and redirect to `enter` page with `profile` address. 
www.example.com/profile 

//after login, user will redirect to previous url (www.example.com/profile). 

我的代碼:

function userNotLogin(){ 

     $cu = current_url(); 
     $cu = urlencode($cu); 
     redirect(base_url().'index/enter/'.$cu); 
} 

//登錄頁面

function enter($before_url) 
    { 
     if($this->isLogged()) 
     { 

      if($before_url) 
      { 
       var_dump($before_url); 
       return; 

      }else{ 
       redirect(base_url()); 
      } 

     }else{ 
      $data = array(); 
      $this->view('page_register_login' , $data); 
     } 

    } 

var_dump($before_url);回報string(5) "http:"

+1

而是存儲'current_url()'你可以存儲控制器/方法'在會話中,然後使用'重定向($ before_url)' –

+0

登錄視圖您正在使用新的頁面或使用引導模態? –

回答

0

您需要使用user_agent CodeIgniter庫。

這樣的 -

$this->load->library('user_agent'); 
redirect($this->agent->referrer()); 

它將工作100%,請使用此...

〔實施例 -

public function login() 
    { 
     $this->load->library('user_agent'); 
     $username = $this->input->post('username'); 
     $password = $this->input->post('password'); 
     $arr = array(
      'username' => $username, 
      'password' => md5($password), 
      'user_type' => 'admin' 
      ); 
     $result = $this->common_model->getMultiple('panel_login',$arr); 
     if(!empty($result)){ 
      $this->session->set_userdata('unique_id',$result[0]['s_no']); 
      $this->session->set_userdata('username',$result[0]['username']); 
      $this->session->set_userdata('password',$result[0]['password']); 
      $this->session->set_userdata('type',$result[0]['user_type']); 
      $this->session->set_userdata('status',$result[0]['status']); 
      $this->session->set_userdata('user_activity',time()); 
      redirect($this->agent->referrer()); 
     }else{ 
      redirect('login_view'); 
     } 

    }