我見過幾個網站,談論如何使一個已登錄功能,讓它在每個頁面加載後自動運行,而不必調用每個控制器中的功能,並想知道是否有人可以指向我對其中的一個,因爲我失去了與我看到的少數人的聯繫。製作一個Codeigniter CMS幹
我發現這個網站,討論如何實現這一點:
philsturgeon.co.uk/blog/2010/02/CodeIgniter-Base-Classes-Keeping-it-DRY
我創建的擴展是CI_Controller擴展控制我的網站和主要站點MY_Controller一個MY_Controller以及Frontend_Controller我也有一個Backend_Controller來控制我創建的CMS。
我也有一個登錄控制器,它擴展了Backend_Controller。我的問題是如果我想爲整個後端區域運行if語句以查看是否存在會話變量isset,並且如果是,請檢查該值是否爲數字。如果是,那麼他們重定向到登錄,如果沒有,然後讓他們重定向到控制面板控制器,這也擴展了Backend_Controller。如果在Backend_Controller中聲明,我會這樣做嗎?
這就是我想到的。
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class Backend_Controller extends MY_Controller
{
public function __construct()
{
parent::__construct();
if (!!isset($this->session->userdata('xtr'))) && (!is_integer($this->session->userdata('user_variable_id'))))
{
redirect('login');
}
}
}
這是正確的方法來實現這一目標和正確的位置嗎?如果是這樣,我會爲登錄控制器或其他控制器做特定的事情來管理用戶嗎?
或者有沒有更好的主意來處理這個問題?