Сначала вам нужно расширить базовый класс, назвать его MY_Controller.php
Сохранить этот файл в: application / core / MY_Controller.php
class MY_Controller extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('ip_table_model');
$this->load->library('input');
// assuming there's a function called "check_ip($ip_address)" in ip_table_model
if (!$this->ip_table_model->check_ip($this->input->ip_address()) {
redirect('error_404');
}
}
}
Теперь мы предполагаем, что у вас есть модель с именем ip_table_model , которая подключается к базе данных со списком IP-адресов, и есть функция с именем check_ip , которая будет проверятьесть ли у пользователя доступ или нет.Это относительно просто, и я не буду показывать никаких примеров по этому поводу.
Страница redirect('error_404');
еще не существует, вам нужно создать контроллер, который показывает вашу страницу 404.
Теперь для любых других контроллеров в вашем проекте вместо расширений CI_Controller установите вместо них расширение MY_Controller .
Вот пример:
class Welcome extends MY_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->view('welcome_message');
}
}
Объяснение: Мы расширяем CI_Controller для создания нашего собственного основного контроллера, называемого MY_Controller .Внутри мы проверяем, есть ли у пользователя доступ или нет через конструктор, который будет вызываться во всех остальных контроллерах проекта.
Ссылки: