2015-09-30 117 views
-1

hello所有人都可以幫助我解決codeigniter中的這個重定向問題。 我爲登錄驗證創建了一個鉤子。post_controller_constructor在CodeIgniter中掛鉤重定向isseus

下面

是我的鉤

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Login_auth { 

    function __construct() { 
     $this->CI = &get_instance(); 
     if (!class_exists('session')) 
     { 
      $this->CI->load->library('session'); 
     }    
    } 

    function auth(){         
     if(! $this->CI->session->userdata('islogin') 
     { 
      redirect(base_url().'loginCtrl/index'); 
     } 
    } 

宗旨,以創建掛鉤,當我嘗試輸入網址時沒有登錄它應該重定向到登錄頁面

,但它顯示的網頁有重定向循環

+0

這是你的代碼的控制器名稱 – Janaka

+0

控制器名稱是loginCtrl.php –

回答

0

它將有一個重定向循環,因爲它檢查會話的每個頁面。包括登錄頁面。

你可以這樣做;

if(!$this->CI->session->userdata('islogin')) { 
    // Not logged in. Are they trying to login? 
    if(!in_array($this->CI->uri->uri_string(), array('login', 'forgot-password'))) 
    { 
     redirect('login'); 
    } 
} 

這將檢查用戶是否登錄。如果他們沒有,它會檢查當前uri_string並將其與數組「允許」的URI array('login', 'forgot-password')

希望這有助於。

+0

但是什麼是數組('login','忘記密碼') –

+0

'array('login','忘記密碼')'是用戶可以在未登錄的情況下訪問的URI數組。 – Craig

+0

但我只允許訪問僅登錄頁面 –