2010-12-02 17 views
0

Ich bin wirklich neu in CodeIgniter.kann ein Controller den Benutzer an einen anderen Controller senden

Ich versuche eine Website einzurichten, wo der Benutzer angemeldet sein muss, um die Seiten anzuzeigen. Aus Java kommend, nehme ich den hierarchischen Zugang zu den Dingen.

Mein Gedanke war meine eigene Controller-Basis zu schreiben.

<?php 
class MY_Controller extends Controller 
{ 
function Controller() 
{ 
    parent::Controller(); 

    if(!$this->quickauth->logged_in()) 
    { 
    //they need to login, send them to the login page. 
    } 
} 
} 
?> 

Jetzt kann ich Controller schreiben, die sie verlängern und ich werde sicher sein, dass sie immer angemeldet sein

Hier ist der Umriss für die Login-Seite:

<?php 
class login extends Controller 
{ 
function index() 
{ 
     //Lets just double check, they might not have to login. 
    if ($this->quickauth->logged_in()) 
    { 
    //send them to the main controller 
    } 
} 
} 
?> 

Nun, wie Sie sehen können, habe ich so weit gekommen. Was muss ich ersetzen:
1. // Senden Sie sie an den Hauptcontroller
2. // Sie müssen sich anmelden, senden Sie sie an die Anmeldeseite.

mit?

Gibt es einen besseren Weg, dies zu tun?

Danke, Blake

Antwort

2

Umleitung ist einfach.

Verwenden Sie einfach:

redirect('controller/method'); 

Ja, die URL-Helfer laden die Umleitung Funktion zuzugreifen.

$this->load->helper('url); 

Da die URL Helfer viel verwendet wird, sollten Sie automatisch geladen es in config/automatischer Dokumenteneinzug.

+1

Je besser der Praxis aufbauen könnte einige Benutzerstatusvariablen in Ihrem MY_Controller wie is_logged_in einzustellen. Überprüfen Sie dann in jedem Konstruktor des erweiterten Controllers, ob sie angemeldet sind. Dadurch können Sie einem nicht angemeldeten Benutzer den Zugriff auf den Controller gewähren, wenn dies für ihn in Ordnung ist: Einige Ihrer Controller sind für nicht angemeldete Benutzer in Ordnung Benutzer. –

+0

Duh. Ich musste letzte Nacht draußen gewesen sein, als ich das schrieb. Danke an alle. – TechplexEngineer

2

, wenn Sie die Last ‚url_helper‘ Sie dort eine Umleitung Funktion haben. Lesen Sie die Dokumentation über die url helper für weitere Informationen.

1

könnten Sie auch soemthing wie diese

function is_logged_in() 
{ 
    $is_logged_in = $this->session->userdata('is_logged_in'); 
    if (!isset($is_logged_in) || $is_logged_in != true) 
    { 
    echo 'You don't have permission to access this page. <a href="http://lemonrose.net">Login</a>'; 
     die(); 
     //$this->load->view('login_form'); 
    } 
} 

verwenden Sie auf dieser

Verwandte Themen