2010-11-21 7 views
0

Fragen Sie sich, wie Sie diese Frage benennen können. Denken Sie, dass dies die bestmögliche Situation ist.Benutzerautorisierung in KohanaPHP App vs Endless Loop

Situation: Ich habe kleine App in KohanaPHP Framework geschrieben. Aber es gibt einen kleinen Fehler, der mich verrückt macht.

Ich habe meinen eigenen Core_Controller, der von jedem Controller in dieser App erweitert wird. Im Konstruktor dieses Controllers überprüfe ich den Benutzerprofilstatus. So weit, ist es gut. Obwohl ich vor einem logischen Problem stehe. Es heißt endlose Umleitungsschleife. Wenn ich versuche, (in Core_Controller-Konstruktor) Benutzer zu Member_Controller umzuleiten, kann es wegen endlosen lopp nicht arbeiten. Ich verstehe, warum es passiert.

Lösung: Ich suche nach einer Lösung, wie man es flexibel macht. Ich habe versucht, diese Verifizierung in einen Helfer zu verschieben und im CoreController-Konstruktor aufzurufen. Es kann jedoch korrekt funktionieren.

Frage: Muss ich Verifikation in Konstruktor jedes einzelnen Controllers setzen? Gibt es eine universelle Methode, dies zu tun?

Warten auf Ihre Gedanken.

M. A.

+0

Ich habe auch versucht, einen Basiscontroller (http://docs.kohanaphp.com/general/controllers#using_a_base_controller_for_your_application) zu verwenden. Mit den gleichen Ergebnissen. –

Antwort

0

Überprüfen Sie einfach, wenn der Benutzer überprüft wird und die Maßnahmen der aktuellen Anforderung ist nicht so etwas wie Mitglied/Verifizierung, die Umleitung tun.

Und parent::__construct(); den Eltern Konstruktor aufrufen, so sehe ich nicht das Problem, dass entweder ..

0

Sie eine Bedingung müssen, wo es nicht umleiten (auf der Seite haben Sie umgeleitet). Sie werden einen ähnlichen Code wünschen.

if not member_controller then 
    redirect to member_controller 
else 
    do nothing 
endif 

Das else wird nicht benötigt, aber nur hinzugefügt, damit es Ihnen klarer ist.