在CodeIgniter中,禁止的IP检查先于任何其他检查


Banned IPs check before anything else in CodeIgniter

我有一个表,其中包含被禁止访问者的IP/DNS数据。我希望这个检查在其他任何事情之前完成,但在加载被禁止的IP的模型之后。

考虑到应该加载403错误的视图以显示给被禁止的访问者,添加此代码并使其在每次访问页面时运行的最佳位置是什么?

被禁止的访问者模型是全局加载的(在autoload.php中指定)。现在,我只需要使验证访问者是否被禁止为全局的函数。这可以用钩子完成吗?你推荐什么?

在应用程序/核心文件夹中创建一个名为MY_controller的控制器。

控制器应该看起来像

class MY_Controller extends CI_Controller
{
    public function __construct()
    {
        $this->bannedIpAdresses();
    }
    private function bannedIpAdresses()
    {
        $this->load->model("BannedIps_Model");
        if ($this->BannedIps_Model->isIpBanned())
        {
            $this->load->view("restricted");
            die();
        }
    }
}

其他所有像欢迎控制器一样的控制器应该看起来像

class Welcome extends MY_Controller {
    public function __construct()
    {
        parent::__construct();
    }
    public function index()
    {
        $this->load->view('welcome_message');
    }
}