sql >> Database teknologi >  >> RDS >> Mysql

Hvad er den bedste praksis for at begrænse bestemte sider til kun loggede brugere i Codeigniter?

Du har ramt sømmet på hovedet, men der er en lidt mere effektiv måde at gøre det på.

Udvid basecontrollerne på én måde (jeg tror oprindeligt beskrevet af Phil Sturgeon), men jeg vil opsummere her:

Se denne artikel for en meget dybdegående skrivning.

men i det væsentlige:

<?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!
        }
    }
}
 

så nu, hvis du vil begrænse adgangen, skal du blot:

class Secret_page extends MY_Controller {

 // your logged in specific controller code
}
 

og den udvidede controller vil automatisk kontrollere, om brugeren er logget ind i konstruktøren.

med hensyn til hvordan, ville jeg sandsynligvis indstille bruger_id'et som værdien for at kontrollere, om det er sat, eller måske en bruger "gruppe" - så kan du få brugertilladelser og varierende adgangsniveauer i dit system.

håber dette hjælper lidt.

rediger

Føj dette til 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 ); } }

Da du bruger CI 2.0, bliver du nødt til at placere MY_Controllers i Application/CORE i stedet for biblioteker.

Min applikation/kerne ligner lidt:

Admin_Controller.php
MY_Controller.php
Public_Controller.php
 


  1. JDBC ResultSet getDate mister præcision

  2. ADO.NET-udbyderen 'Oracle.ManagedDataAccess.Client' er enten ikke registreret i maskinens eller applikationens konfigurationsfil eller kunne ikke indlæses

  3. Sådan fjerner du Not Null Constraint i MySQL

  4. Hvordan importerer man CSV-fildata til en PostgreSQL-tabel?