2013-07-16 2 views
0

можно ли проверить аутентификацию пользователя в функции конструктора контроллера воспламенителя кода?код воспламенитель проверить аутентифицированный пользователь на контроллере контроллера

контроллер пользователя

class user extends CI_Controller{ 

function __construct() { 
    parent::__construct(); 

    $this -> load -> model('user_model'); 
    if (!$this -> user_model -> logged_in()) { 
     $this -> load -> view('user/login'); 

    } else { 
     return TRUE; 

    } 
    } 

} 

в то время как я запуска этого я получил Вход верхней части моей приборной панели после входа в систему. перед входом я получаю два входа в систему. Я попробовал это для того, чтобы свести к минимуму повторную проверку, зарегистрированный пользователем или нет.

ответ

-1

Просто сделайте простую проверку сеанса, как, где вы проверить сессионный действительность пользователя, если установлен или нет:

if(!$this->session->userdata('logged_user')){ 
    redirect('controller/function', 'refresh'); 
} 

В контроллере:

public function function(){ 
    $this->load->view('login'); 
} 
+0

уже следую этому пути. но я не хочу проверять аутентификацию в контроллерах каждой функции. если это делается при контроллере конструктора, это уменьшит повторное кодирование. возможно ли это при конструкторской функции контроллера. – hserusv

+0

Тогда самым простым способом было бы автоматически загрузить ваш 'user_model' и вызвать функцию' $ this -> user_model -> logged_in() 'без каких-либо условий, а в функции' logged_in() 'перенаправить другую функцию, которая будет просто загрузите окно входа в систему. –

+0

Синтаксическая ошибка в коде контроллера. – catbadger

0

Если вы хотите показать страницу входа с изменением url, вы должны сделать метод пересылки. Но у CI нет метода для продвижения вперед.

проверка нижеследующие ответы. Internal forward action in CodeIgniter

Смежные вопросы