我正在使用CodeIgniter
框架爲PHP
。有些頁面專門用於管理員,他們位於Admin/*
。當用戶登錄時,我在會話中存儲一些值作爲標誌,並在我的控制器中驗證它以測試用戶是否登錄。我編寫了代碼來檢查我的控制器中每個方法的會話。但是,後來我意識到我不想在每種方法中編寫相同的代碼行,因爲許多問題都是從可維護性角度創建的。然後我決定創建一個獨佔控制器,它將只加載管理視圖,因此在它的構造函數中檢查會話值。除了這種方法還有其他方法嗎?我做對了嗎?或者CodeIgniter
有任何其他安全機制?如何驗證用戶是否已登錄?
4
A
回答
4
你已經採取了最好的方法之一(我的意見),只是讓其他管理員控制器擴展從該控制器,所以你可以有專門的控制器(管理博客,管理圖片庫等)。如果你需要幫助,我會很樂意幫助你。
1
你能做到這一點在你的構造函數方法是這樣的,
function __construct {
parent::construct();
/* Do you login check here */
}
1
例如:
class Admin extends Controller {
function __construct()
{
parent::__construct();
$this->is_logged_in();
}
function is_logged_in()
{
$is_logged_in = $this->session->userdata('is_logged_in');
if(!isset($is_logged_in) || $is_logged_in != true)
{
redirect('login');
}
}
太好了!謝謝:) – TCM 2010-07-19 13:27:35
嘿Flakron,我感謝更多的幫助/建議。具體來說就是如何首先設置控制器。然後如何讓其他控制器擴展它,同時擴展CI_controller。 – David 2012-05-06 14:55:24