Codeigniter维护挂钩

时间:2014-04-08 11:26:39

标签: php codeigniter

我正在研究新的维护模式功能。我希望能够看到所有其他页面,而其他人都将看到维护页面。有没有办法可以添加我的IP,以便只有我的IP可以访问所有文件?

我希望能够以某种方式将我的IP 放入此挂钩文件中。

我已经设置了钩子等。

在我的app / hooks文件中:

    public function __construct() {
        log_message('debug','Accessing site_offline hook!');
    }

    public function is_offline() {
        if(file_exists(APPPATH.'config/config.php')) {
            include(APPPATH.'config/config.php');

            if(isset($config['is_offline']) && $config['is_offline']===TRUE) {
                $this->show_site_offline();
                exit;
            }
        }
    }

    private function show_site_offline() {
        $this->load->view('common/header');
        $this->load->view('common/maintenance');
        $this->load->view('common/footer');
    }
}

1 个答案:

答案 0 :(得分:0)

如果维护模式处于活动状态,则可以执行以下检查,以确定用户是否尝试从允许的IP地址查看该站点。

$allowed_ip = '192.168.1.1'; // Whatever your IP address is

if ($_SERVER['REMOTE_ADDR'] == $allowed_ip)
{
   // Load the site
}
else
{
    // Load the maintenance page
}

可以欺骗IP地址,但实际上这很难;这是fairly safe方法。另一种方法是验证自己,设置会话,如果此会话存在,则加载适当的视图。


可能值得查看CodeIgniter的Config Class文档,最佳做法是加载这样的配置项:

$this->config->item('is_offline');

而不是:

$config['is_offline']