CodeIgniter - So überprüfen Sie die Sitzung, die bei allen Methoden verwendet werden soll

7

Nehmen wir an meinem Controller Book , ich habe viele Methoden, wie      get_book(); read_book(); remove_book();

Keine Methoden in der Klasse können verwendet werden, ohne dass der Benutzer angemeldet ist, und ich kann die user_id aus der Sitzung abrufen.

Meine Frage ist, Was ist / sind die besten Möglichkeiten, um zu überprüfen, ob die user_id -Sitzung gesetzt ist, so dass ich die Methoden verwenden kann?

Im Moment denke ich darüber nach, eine is_logged_in() -Methode zu erstellen und sie für jede Methode mit einer if-else-Anweisung wie

anzuwenden %Vor%

Ist es nicht lang und langweilig? Gibt es einen ultimativen Weg, dies zu erreichen?

Ich lese den Link

Codeigniter-Prüfung für Benutzersitzung in jedem Controller

Aber es scheint, dass ich den is_logged_in Check immer noch bei jeder Methode anwenden muss.

Danke, dass Sie mir geholfen haben!

    
user826224 24.11.2011, 15:51
quelle

3 Antworten

11

Erstellen Sie eine Datei namens MY_controller.php (das Präfix kann in der Konfigurationsdatei bearbeitet werden) in /application/core :

%Vor%

Wenn Sie dann einen neuen Controller erstellen, entscheiden Sie, welchen Zugriff er benötigt

%Vor%

Dadurch wird die Code-Duplizierung stark reduziert, denn wenn Sie einen anderen Mitgliedscontroller als Book benötigen, können Sie einfach den Member_Controller erweitern. Anstatt die Prüfungen in allen zu machen.

    
Esailija 24.11.2011, 16:12
quelle
9

Das musst du nicht unbedingt tun. Setzen Sie einfach den Login-Prüfcode in den Konstruktor und Sie sind fertig!

%Vor%     
Kemal Fadillah 24.11.2011 15:58
quelle
0

Sie können die Methode im Konstruktor des Controllers verwenden, wie:

%Vor%     
Sudhir Bastakoti 24.11.2011 16:00
quelle

Tags und Links