Codeschnipsel
Login Skript
Hey Leute,
hab nun aufgrund des Tutorialwunsches dieses Tutorial hier geschrieben, und los geht´s:
Das Einbinden der Klasse
Erstmal das einfachste von Allem, erstmal muss die Klasse eingebunden werden. Ich benutze hier aus folgendem Grund require_once():
include: fügt eine Datei beliebig häufg ein und lässt das Skript bei Fehlern weiterlaufen und gibt bloß eine Warnung aus.
require: Tut das gleiche, jedoch bricht es bei einem Fehler das gesamte Skript ab und gibt ne Fehlermeldung aus.
include_once: Gleiche wie include, nur wird hier die Datei nur einmal eingebunden.
require_once: Gleicher Zusatzeffekt wie "include_once"
Hier sollte sofort ersichtlich werden, was für uns geeignet ist. Ohne der Datei geht nix, also benutzen wir require, außerdem braucht man die
Klasse nur einmal einzubinden, mehrmals ist nur schädlich für die Performance, also: "require_once()"
Außerdem gibt es noch heftige Performanceunterschiede bei der Angabe des Pfades zur Datei.
Kurz:
Relativer Pfad (Pfad von der Datei aus) wie zB: "/Ordner/datei.php"
Ist am schlechtesten geeignet!, da PHP den Pfad erstmal neu berechnen muss, gibt es hier die größten Performanceverluste.
Semiabsoluter Pfad (Datei befindet sich im gleichen Verzeichnis) wie zB "./Ordner/datei.php"
Durch den Punkt wird gekennzeichnet, dass vom gleichen Verzeichnis wie die momentan ausgeführte Datei ausgegangen wird.
Diese Datei ist um einiges besser als die relative Pfadangabe, aber es geht noch besser 😉
Absoluter Pfad (Der gesamte Pfad von der Root-Struktur aus) wie zB "C:\\User\UserName\Desktop\Ordner\datei.php"
ist von allen Möglichkeiten am Performancebesten, da hierbei die komplette Zusatzarbeit von PHP abgenommen wird.
Absoluter Pfad in PHP bestimmen
Es gibt eine Konstante namens __FILE__, in dieser ist der momentane Name der Datei definiert.
Nun kombinieren wir das mit der Funktion dirname(), mit dieser Funktion bekommen wir den absoluten
Pfad zu der Datei, die wir als Übergabeparameter übergeben.
|
Die Verwendung der PHP-Klasse "Login"
Nachdem wir die Datei nun erfolgreich eingebunden haben, erzeugen wir erstmal ein Objekt, indem wir die Refenz dieser Klasse als Instanz auf in einer
Variable definieren.(Ich liebe es, so zu sprechen xD) Auf Deutsch: wir verwenden den New-Operator 😉
|
Wichtig für die Verwendung der Klasse sind nur 2 Dinge: die Methode (So nennt man die Funktionen in einer Klasse)
logged_in(), diese checkt, ob man eingeloggt ist oder nicht (Rückgabewert true oder false).
Und natürlich, wie man sich ein- und ausloggt. Dies geht über den Construktor (dazu später mehr) und
über die GET-Variable action. also bei ?action=logout wird man automatisch ausgeloggt und
bei ?action=login halt eingeloggt.
Hier mal ein Codebeispiel:
|
Ist doch ganz simpel, oder?
Diese Klasse hat auch noch den Vorteil, dass sone schwule Weiterleitung nicht mehr nötig ist 😉
Die Klasse im Detail
Allgemein: Die Interzeptormethode (Schönes Wort :)) __construct wird aufgerufen, wenn die
Referenz der Klasse gerade per dem New-Operator auf eine Variable übertragen wird.
Sie wird also per Zeile 10 (Siehe Codeschnipel hier drüber) aufgerufen.
Hier wird nun der Status (On oder Off) gesetzt und auf die GET-Variable "action" geprüft.
Die restlichen Methoden sollten per Kommentate gut genug erklärt sein:
|
Viel Spaß damit!
Im Konstruktor muss diese Teil noch angepasst werden:
|
Und zwar müssen hier die Logindaten noch gecheckt werden, zB so:
|
Bei dem Else kann auch eine neue Methode aufgerufen werden, die dann die Fehlermeldung übernimmt.
Hier die Demo:
http://alexf.ath.cx/basti/Tutorials/Login/
Das Passwort ist: richter
So ich hoffe, das zeigt das Prinzip soweit ganz gut =)
Anmerkung:
Ich benutze immer Single Quotes (') anstatt Double Quotes ("), weil Single Quotes performaneter
sind, da PHP bei Double Quotes jedesmal den gesamten String nach Variablen durchsucht.
Beispiel:
|
Gruß Basti!
Kommentare
Autor B.C.