Система авторизации Codeigniter HMVC

Я только что установил Codeigniter HMVC, и мне очень нравится, как он работает, но я новичок в этом. Мой вопрос в том, как я могу проверить при входе в систему? Я знаю, что мне нужно сделать модуль входа в систему. А потом я зашел в папку core и добавил это в MX_Loader

function __construct(){
    $this->load->helper('url');
    redirecht('login');
} 

Но он не распознает вспомогательную команду. Я делаю что-то неправильно? Я хотел проверить сеансы на этой странице, и если сеанс не существует, я хотел перенаправить его в модуль входа в систему. Как я должен это сделать?

заранее спасибо


person Sinan Samet    schedule 12.04.2014    source источник
comment
Вы видите, что набираете redirecht? И если вы хотите проверить вход в систему на каждом контроллере, вы можете добавить MY_Controller в основную папку, а затем расширить его. Это самый простой способ.   -  person Vincent Decaux    schedule 12.04.2014
comment
Я расширил MY_Controller, но он не реагирует на это. Например, если я наберу в нем redirect('login'), он ничего не сделает. Хотя он выдает мне ошибки, если я ввожу в него ошибку. И извините за опечатку, исправил.   -  person Sinan Samet    schedule 12.04.2014


Ответы (1)


для этого вы должны включить/автозагрузить библиотеку сеансов.

Попробуйте следующий пример.

откройте файл application/config/autoload.php и установите следующее.

$autoload['libraries'] = array('session');
$autoload['helpers'] = array('url');

в вашем контроллере входа в систему (в котором вы проверяете учетную запись пользователя, существующую в базе данных), как только вы закончите проверку базы данных, добавьте следующие строки

$session_array = array('admin_id' => "1",'username' => "admin"); // here the "1" and the string "admin" are just for example. modify the array key and value as per your requirement. 
$this->session->set_userdata('user_logged_in', $session_array);
 redirect('admin/dashboard', 'refresh');

По этой строке сессия будет добавлена ​​в приложение. Для оценки в вашей функции __construct добавьте следующие строки.

function __construct() {
    parent::__construct();
    if(!$this->session->userdata('user_logged_in')){
     redirect('login');
    }   
}

надеюсь, это поможет.

person Karthik P    schedule 12.04.2014
comment
Спасибо, это полезно, но не совсем то, что я искал. VincentDecaux действительно ответил на мой вопрос. - person Sinan Samet; 12.04.2014