PHP als OOP ( MVC ) - Sessions

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP als OOP ( MVC ) - Sessions

    Moin Moin,
    ich versuche mich gerade daran kleine Datenbank zu schreiben mit Ein- und Ausgabe.
    Das Ganze soll möglichst OOP sein und nach dem MVC Modell.

    Die Klassen Config und Autoloader werden in der index.php geladen.
    Dort wird eine Klasse Applikation aufgerufen, welche die funtkion run() hat.

    Hier wird anhand des Http-Requests ( eigene Klasse ) überprüft, welcher Controller jetzt aufgerufen werden soll.

    Soweit, so gut.
    Jetzt möchte ich ein Loginsystem verwenden.
    Dafür habe ich mir eine Klasse Session erstellt, welche die Session(Cookie) lädt im Konstruktor und eine Funktion isValidUser($username) hat.
    Diese funktion greift auf die Instanz meiner extendedMysqli zu und gibt zurück ob der User noch eine aktive Session in der Datenbank hat.

    Frage ist jetzt für mich folgende :
    Wo genau löse ich die Funktion aus ?
    Direkt in der Applikation vor dem Controller um den Fehler abzufangen und einen Controller zu laden, der hierfür erstellt wird ?

    MfG Daether

  • #2
    Das Login ist grundsätzlich vorgeschaltet. In den meisten Sprachen auch als eigenständiger "Filter" bezeichnet.

    Die Sessionverarbeitung ist also im Idealfall kein Bestandteil des normalen Content-Controllers, sondern komplett eigenständig. Die Logik dieser Klasse kann ntürlich weiterhin auf die gleichen Config/DB/User/...-Klassen zugreifen um Daten zu prüfen.

    Ich persönlich würde dir bei PHP auch einfach Sessions empfehlen. Ob der Benutzer Cookies mag oder nicht, kann dann PHP entscheiden.
    :: BackTix - Textlink Marktplatz
    :: Online PHP Formular Manager & Generator
    :: PHP Gästebuch Script | PHP HTAccess Passwortschutz Generator

    Kommentar


    • #3
      Moin,
      ich les mich dann mal ins Stichwort "Filter" ein .

      Danke für den Hinweis,
      hab mir jetzt eine Klasse Session erstellt, welche die Sessionvariable ausließt und bearbeitet.
      Dazu hat die Klasse eine Funktion "isValidLoggedIn", diese ließt die Session aus und gleicht die in der Session gespeicherte UserID und die SessionID mit der Datenbank ab. Dabei wird true oder false zurückgegeben.

      Der Aufruf ist dann :
      Code:
          
              $session = session::getInstance() ;
      
              $isvalid = $session->isValidLoggedin() ;
              
              if ( $isvalid == false ) {
      Gegebenenfalls wird dann der benötige Controlelr für die angeforderte Seite oder ein ErrorLogin-Bildschirm gezeigt.

      MfG
      Daether

      Kommentar

      Lädt...
      X