CodeIgniter: Ein Loginsystem aufbauen

CI_LogoIm zweiten Artikel werden wir eine Anmeldungsmaske programmieren, mit der wir in einem geschützten Bereich einloggen.

DB-Konfiguration sowie Tabelle erstellen

Bevor wir die Tabelle erstellen, müssen wir die Datenbankeinstellung in der Datei (config/database.php) vornehmen.

database

Nachher müssen wir noch die Datei im Autoload (config/autoload.php) einbinden.

Jetzt erstellen wir eine Tabelle ‚user‚ mit drei Spalten.

Danach wird ein Datensatz für das Login angelegt, bei mir sieht es wie folgt aus, für den Username nehme ich ‚pera‚ und als Passwort ‚123456‚. Für den Anfang sollten die drei Spalten genügen, später werden wir die Tabelle erweitern.

 

Model
Jetzt wird die Model-Klasse im Ordner application/model/User_model.php angelegt. Für jede Tabelle in unsere Datenbank gibt je eine Klasse mit dem gleichen Namen. CodeIgniter verlangt, dass der erste Buchstabe der Klasse grossgeschrieben wird.

Der Code für den User-Model sieht wie folgt aus:

Wie am Anfang der Serie geschrieben, ist der Model für die Datenhaltung zuständig und prüft die Daten auf ihren Wahrheitsgehalt. Dafür gibt die Funktion checkLogin(), diese überprüft, ob der Username sowie das Passwort in DB vorhanden ist und falls ja, dann wird ein true zurückgegeben, andernfalls ein False-Statement abgeschickt.

 

View
Im view-Ordner (application/view) erstellen wir zwei PHP-Dateien, die erste heisst login.php und die zweite success.php. Auf der login.php kommt die eigentliche Loginmaske und die success.php-Seite ist der geschützte Bereich.

Die login.php-Seite ist so:

Und für success.php steht folgende Text drin:

 

Controller
Zu guter Letzt werden wir noch den Controller erstellen, der für die Steuerung zuständig ist.

Im Konstrukt werden die entsprechende Libraries sowie das Model geladen. User wird als Alias für User_model genutzt, um die Tipparbeit zu sparen. In der privaten Funktion validLogin() werden die Daten nach der entsprechenden Richtlinien (wie mind. Passwortlänge) validiert. Sobald die Daten die Validierung überstanden haben, werden die Daten zum Model weitergeleitet, wo die auf dem Wahrheitsgehalt geprüft werden.

Die Funktion set_rules() stellt folgende Konstante zur Validierung zum Verfügung:

  • trim: entfernt alle Leerzeichen
  • required: Das Feld muss befüllt sein
  • xss_clean: Injektion werden entfernt
  • min_length[X]: Prüft auf mind. Länge, X steht für Zahl
  • max_length[X]: Prüft auf max. Länge, X steht für eine Zahl
  • callback_eigeneFnc: kann man eine eigene Funktion schreiben (Dazu später mehr)

In der Index-Funktion wird dann je nach der Situation, die entsprechende Zeile ausgeführt.

 

Aufruf

Auf die Seite wird wie folgt zugegriffen: <path>/<Appname>/index.php/Login oder in meinem Fall: localhost/prashgrid/index.php/Login

Nach der Anmeldung sollte die Seite wie folgt aussehen.

success

success.php

  

 

 

 

 

 

 

 

Fazit: Wir wissen jetzt, dass der Controller beim Aufruf einer Seite als Erster zugegriffen wird, der dann auf die HTML Seite umleitet. Der Modelname muss immer mit einem Grossbuchstaben beginnen und sollte gleich wie die Tabelle heissen. Zudem haben wir verschiedene Validierungsmethode kennen gelernt. Im nächsten Artikel werden wir noch die Fehlermeldung sowie eigene Validierungsmöglichkeiten einbauen.