Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apa praktik terbaik untuk membatasi halaman tertentu untuk pengguna yang masuk hanya di Codeigniter?

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cara menemukan catatan pertama dan terakhir dari tabel mysql

  2. Simpan info akun di semua aktivitas di android studio

  3. 10 tips bermanfaat tentang penyetelan kinerja MySQL

  4. Bagaimana saya bisa mengaktifkan log kueri lambat MySQL di server saya?

  5. Wildcard dalam nama kolom untuk MySQL