Login/Memberbereich mit SessionsAdminmodul für das eigene Gästebuch, Controlpanel eines Forum oder einfach nur für ein geschützer Bereich.
3
3
So, in $zeileholen wird mittels mysql_fetch_array das Ergebnis des Querys eingelesen. MYSQL_ASSOC signalisiert php dass $zeileholen ein assoziatives Array werden soll. Dies ist eigentlich am besten handlebar, da $zeileholen[„pass“] dann den Wert von pass bekommt usw.. Dass ist übersichtlicher wie $zeileholen[1] zB. , denn dann ist ist die Reihenfolge so wie man es im SELECT Statement angibt, ändert man die Reihenfolge oder fügt etwas neues ein kann das Script ganz schön ins schleudern kommen. Mit mysql_close($conn) wird dann die Verbindung wieder abgebaut. Sie wird nichtmehr gebraucht. Dieser Befehl muss eigentlich nicht angegeben werden weil nach beenden des Scripts sowieso alle Verbindungen gekappt werden. Es ist aber von der Performance her besser, gerade wenn man viele Verbindungen benutzt und dazu noch einen lahmen Server hat.
So hier haben wir wieder die ‚negierte’ if Abfrage, denn auch mysql_fetch_array gibt ein FALSE zurück wenn kein Datensatz gefunden wurde. Naja und wenn jemand nicht in der Datenbank steht dann geht’s auch nicht weiter, also die(..).
So, hier wird jetzt abgefragt ob das Passwort aus der Datenbank mit dem $passwort übereinstimmt, bzw. es wird wieder abgefragt ob es nicht gleich ist, warum das haben wir weiter oben ja schon besprochen. Hier sieht man auch schön wie übersichtlich es ist wenn da steht $zeileholen[„pass“]. Ich meine, der der das Script geschrieben hat, erkennt auch $zeileholen[1] aber einer der das Script vorher nicht kannte, sieht auf einen Blick was aus der Datenbank kommt, darauf sollte man auch achten, man ist nicht allein auf der Programmiererwelt.
Hier wird jetzt der Wert level, aus der DB, in die Variable $level gespeichert, dies mache ich damit ich es als Sessionvariable registrieren kann.
So, hier werden jetzt die Variablen $username und $level als Sessionvariablen registriert, sie stehen jetzt in allen weiteren Scripten zur verfügung welche eine Session mit session_start() starten bzw. aufrufen. Hier liegt ein kleine Falle, und zwar ist beim session_register Befehl darauf zu achten dass das $ im Variablenname wegfällt.
Und zu guter letzt wird mittels des header Befehls zum Hauptscript admin.php weitergeleitet. Für den header Befehl gibt dasselbe wie für session_start , es darf kein HTML Code davor stehen, gegenseit ‚beissen’ sie sich nicht und von anderen php Befehlen lassen sie sich auchnicht ‚beissen’ solange kein HTML Code erzeugt wird, zB. mit echo ! admin.php
Wieder muss die Session gestartet werden, der Server schaut jetzt nach ob der User schonmal da war. <html> <head> <title>Adminzone</title> </head> <body> Nachdem, die Session gestartet wurde darf auch HTML zum Einsatz kommen.
Mit session_is_registered kann man überprüfen ob Sessionvariablen gespeichert sind. Ist in etwa dasselbe wie isset für normale Variablen. Wiedermal kommt die ‚negierte’ if Abfrage zum Einsatz, wenn es keine gespeicherte Sessionvariable gibt dann hat man sich ja auchnicht eingeloggt, also hat man auch keine Rechte. Ansonsten ....
... wird man herein gebeten. Der Userlevel hat hier eigentlich keine Verwendung, er ist eigentlich nur als beispiel eingebaut, zB. um bestimmte Funktionen zur Verfügung zu stellen. Mit Level 1 wird dies ausgegeben, mit Level 2 das usw.
Nun noch ein Button, weil ausloggen sollte man sich aus Sicherheitsgründen schon !
Nun kommt noch das Auslogscript und wir sind durch
Dann müssen wir sie löschen ;)
Und dann gehen wir wieder weiter zum login-Screen zurück und unsere Rundreise ist beendet. Diese Scripts haben jetzt noch keinen richtigen Nutzen, allerdings muss man eigentlich nur die admin.php erweitern und über die $level Variable kann man schon jede Menge Individualität einbauen. Ich hoffe das Tutorial ist zu gebrauchen, gerne nehme ich Verbesserungen und comments entgegen. Mit freundlichen GrüßenJoel
|
Über den Autor
Tutorial bewertenHat Ihnen dieses Tutorial gefallen? Dann bewerten Sie es jetzt! Fünf Sterne bedeutet "Sehr gut", ein Stern "Unzureichend". aktuelle Artikel
|
|||||||||||




|22.08.2002 | 


