禁止的IP在CodeIgniter之前检查其他任何内容

时间:2015-06-25 16:34:01

标签: php codeigniter hook

我有一张表格,其中包含禁止访客的IP / DNS数据。我希望在其他任何事情之前完成此检查,但是在加载了禁止IP的模型之后。

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

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

1 个答案:

答案 0 :(得分:3)

在application / core文件夹中创建一个名为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');
    }
}