2016-09-29 66 views
0

我已經創建了一個用戶登錄和註銷系統。登錄後,用戶將被重定向到他的儀表板。目前,藉助正確的網址,用戶無需登錄即可直接進入儀表板。限制此我用下面的代碼,使用戶無法登錄無法在codeigniter中重定向

class User extends CI_Controller 
    { 
     public function __construct() 
      { 
       parent::__construct(); 
       if(!$this->session->userdata('logged_in')) 
        { 
         $this->session->set_flashdata('no_access', 'sorry you are not allowed'); 
         redirect('user/noaccess'); 
        } 
      } 
    } 

現在擺在訪問任何內部網頁,當我試圖用正確的URL訪問儀表盤,但沒有登錄我不能夠查看它,但是不是也被重定向到無法訪問。我收到以下錯誤

不是重定向頁面正確

誰能告訴如何做到這一點正確

+0

您的基礎URL設置?並且你是否遵循了codeigniter的文件名和類命名風格http://www.codeigniter.com/user_guide/general/styleguide.html#file-naming – user4419336

+0

@ wolfgang1983是的,它已經設置好了,我已經關注了一切 – Sam

+0

@Sam,嘗試'重定向(base_url(user/noaccess));' –

回答

0

山姆認爲這樣做

public function logged_in() 
{ 
    $logged_in = $this->session->userdata('logged_in'); 
    if (!isset($logged_in) || $logged_in != true) 
    { 
     redirect("Checkin"); //insert your login page 
    } 
} 

然後在你的控制器頁面訪問您可以調用此方法

public function admin() 
    { 
    $this->logged_in(); 
    //rest of controller here 
    } 

這將防止任何人在未登錄的情況下訪問管理頁面。 「logged_in」方法會將它們重定向到登錄頁面。這樣你就不會重定向到另一個頁面(user/noaccess)或使用flashdata。使用$ this-> logged_in();在任何需要登錄的方法上