2017-01-25 60 views
0

我試圖重定向到控制器索引,如果未授權訪問同一控制器內的其他功能。根據我的編碼,它看起來像無限循環。請幫我做到這一點。如果驗證碼驗證失敗,重定向到某個控制器功能

class Customer_Dashboard extends CI_Controller { 
    public function __construct() { 
     $method= $this->router->fetch_method(); 
     if ($this->session->userdata("cus_sel_comp")) { 

     }else{ 
      if($method !="index"){ 
       redirect(base_url()."customer_dashboard");exit; 
      } 
     } 
    } 
    public function index() { 
     // Here do some operations and let the user to select company and update the "cus_sel_comp" session variable. After set that session user can access the other controller functions. 
    } 
    public function other_function1() { 

    } 
    public function other_function2() { 

    } 
} 

我的編碼和上面一樣。我需要使用相同的控制器來做到這一點。問題是如果該會話沒有在那裏設置有無限循環。

回答

0

而不是重定向返回索引函數。見下面

if($method !="index"){ 
       return $this->index(); 
} 
0

的代碼要調用同樣的功能,並將其重定向到同樣的方法。

class Customer_Dashboard extends CI_Controller { 
     public function __construct() { 
      $method= $this->router->fetch_method(); 
      if ($this->session->userdata("cus_sel_comp")) { 

      }else{ 
       if($method !="index"){ 
        redirect(base_url()."Customer_Dashboard/index"); // Redirect it to index if other method is invoked. 
       } 
      } 
     } 
     public function index() { 
      // Here do some operations and let the user to select company and update the "cus_sel_comp" session variable. After set that session user can access the other controller functions. 
     } 
     public function other_function1() { 

     } 
     public function other_function2() { 

     } 
    } 

而且不使用base_url()代替,在配置限定路徑 base_url()具有本許多其它條目被未必然調用。

+0

你能給我一個解決方案嗎? –

+0

@GayanFernando我回答了你關於重定向的問題嗎?你問那個解決方案還是'base_url'? –

+0

我需要重定向到customer_dashboard控制器索引函數。不適用於網站主控制器。這可能嗎?或者有沒有辦法做到這一點,而不是使用重定向? –