Anda telah berhasil, tetapi ada cara yang sedikit lebih efisien untuk melakukannya.
Perluas pengontrol dasar, satu arah (saya percaya awalnya digariskan oleh Phil Sturgeon) tetapi saya akan meringkasnya di sini:
Lihat artikel ini untuk tulisan yang sangat mendalam.
tapi intinya:
<?php
class MY_Controller extends Controller
{
function __construct()
{
parent::Controller();
if (! $this->session->userdata('first_name'))
{
redirect('login'); // the user is not logged in, redirect them!
}
}
}
jadi sekarang jika Anda ingin membatasi akses, cukup:
class Secret_page extends MY_Controller {
// your logged in specific controller code
}
dan pengontrol yang diperluas akan secara otomatis memeriksa apakah pengguna masuk ke konstruktor.
untuk caranya, saya mungkin akan menyetel user_id sebagai nilai untuk memeriksa apakah set, atau mungkin "grup" pengguna - maka Anda bisa mendapatkan izin pengguna dan berbagai tingkat akses di sistem Anda.
semoga bisa sedikit membantu.
edit
Tambahkan ini ke application/config.php
/*
| -------------------------------------------------------------------
| Native Auto-load
| -------------------------------------------------------------------
|
| Nothing to do with cnfig/autoload.php, this allows PHP autoload to work
| for base controllers and some third-party libraries.
|
*/
function __autoload($class)
{
if(strpos($class, 'CI_') !== 0)
{
@include_once( APPPATH . 'core/'. $class . EXT );
}
}
Saat Anda menggunakan CI 2.0, Anda perlu menempatkan MY_Controllers di dalam Application/CORE daripada Library.
Aplikasi/Inti Saya Terlihat seperti:
Admin_Controller.php
MY_Controller.php
Public_Controller.php