Hallo,
naja, ich habe mir vorgenommen, OOP zu lernen. Kurzerhand habe ich eine Login Funktion geschrieben! Das Zip-Archiv ist im Anhang! Kritik, Bugreports, Verbesserungsvorschläge etc, bitte hier!
Hier der Readme-Ausschnitt aus login_class.php:
EDIT: NEUE VERSION 1.2:
EDITENDE
Edit²
Neue version 1.3, Changelog:
Editende!
Edit³
Neue version 1.4, Changelog:
Editende!
Ich hoffe, es gefällt euch!
Und für mein erstes Projekt find ich das ganz ordentlich!
mfg
björn
p.s.: ich habe von keinem einzigen anderen Login Script abgeschaut
[COLOR=red]Edit: Warum kann ich keinen Anhang mehr ändern?[/COLOR] Naja dann eben auf meinem privaten Hosting!
login class 1.4
naja, ich habe mir vorgenommen, OOP zu lernen. Kurzerhand habe ich eine Login Funktion geschrieben! Das Zip-Archiv ist im Anhang! Kritik, Bugreports, Verbesserungsvorschläge etc, bitte hier!
Hier der Readme-Ausschnitt aus login_class.php:
PHP-Code:
<?php
/********************************************************
*
*
* Login_class.php Version 1.4
* (28.10.2005)
*
* Known Bugs:
* - Keine
*
* ToDO:
* - Nichts. Aber nicht zögern, mir zu schreiben
* falls Ihr Wünsche etc habt!
*
********************************************************
*
* Dieses Script darf frei kopiert und modifiziert
* werden! Der Hinweiß auf den Autor darf nicht
* entfernt werden!
*
********************************************************
*
* Features:
* - einfache Installation
* - Supervisor, welcher direkt in dieser Datei
* angepasst werden kann! Hat immer Zugriff
* als Admin!
* - Benutzung von Sesseions und/oder Cookies
* zur Authentifizierung!
* - Debugging ein- bzw ausstellbar!
* - Cookiedauer festlegbar!
* - Cookiename einstellbar!
* - Maximale Anzahl an fehlgeschlagenen
* Logins in einer bestimmten Zeitspanne
* einstellbar!
* - Einfach Verwendung (Siehe Anwendungsbeispiele!)
* - Bei jedem Aufruf einer Secret Area wird
* überprüft, ob der User das Recht hat, die Page
* zu sehen!
* - Bestimmte Bereiche festlegbar, welche nur
* Admins sehen dürfen!
* - Falls ein User ohne Authentifizierung eine
* geschützte Seite aufruft, wird das Login
* Formular auf dieser Seite angezeigt und
* er ist danach auch direkt auf dieser Seite!
* - Anti-Hacker Schutz mit Simulierung einer
* variablen Antwortzeit des Servers, um Massen-
* requests zu blocken!
* - Failed-Login Logs werden nach einem Tag gelöscht
*
********************************************************
*
* Installation:
* - Die Variablen unter diesem Kommentar anpassen!
* - Es werden nur 2 MySQL tabellen benötigt. Die
* install.php ausführen (es werden nun die Tabellen
* angelegt), und danach unbedingt LÖSCHEN!
* - Als Supervisor einloggen (Daten können in dieser
* Datei geändert werden ($cfg['user'],$cfg['pass']))
* und neue User/Admins erstellen!
*
********************************************************
*
* Verwendung:
* - Bitte die Datei login_class.php am Anfang der
* Seite einbinden! z.b. require_once('login_class.php');
* - In eine Seite mit geschütztem Inhalt folgendes einfügen,
* um den User zu überprüfen! Falls die Überprüfung
* fehlschlägt, wird das Formular angezeigt:
*
* ********** CODE: ***********
* if( !($auth->may_person_view()) ) {
* $auth->show_redirect_form();
* exit();
* }
*
* - Bitte die Datei admin.php in das Verzeichnis
* der zu schützenden Seite kopieren!
* - Falls man Admin Rechte hat, bekommt man ein Link
* zu admin.php angezeigt, wo ma User erstellen
* und löschen kann!
* - Admin Bereiche lassen sich wie folgt schützen:
*
* ********** CODE: ***********
* if( $auth->secureAdmin() ) {
* // ...Admin Bereich
* }
*
* - Der Logout wird wie folgt aufgerufen:
* $auth->doLogout();
*
* - Also nochmal ein ganzes Beispiel:
*
* <?php
* include('login_class.php');
*
* if( !($auth->may_person_view()) ) {
* $auth->show_redirect_form();
* exit();
* }
*
* // Ab hier fängt der Bereich an,
* // den eingeloggte User/ Admins sehen:
*
* if($_GET["kill"] == "yes")
* $auth->doLogout();
*
* echo "Hallo User!";
*
* if( $auth->secureAdmin() ) {
* // Diesen Bereich zwischen den
* // geschweiften Klammern sehen nur
* // Admins!
*
* }
*
* // Das hier sehen nun auch wieder die
* // Normalen User:
*
* // Link zum Logout!
* echo "<br><a href='?kill=yes'>logout!</a>";
* ?>
*
********************************************************
*
* Bei Fragen, Kritik, Lob, Verbesserungsvorschlägen,
* Bugreports etc, bitte entweder eine Email an mich
* oder im ICQ melden, oder auf nsane.de vorbeischauen!
*
* Und nun viel Spaß bei der Benutzung!
*
********************************************************/
EDIT: NEUE VERSION 1.2:
PHP-Code:
<?php
/********************************************************
* CHANGELOG:
* v1.1 to v1.2:
* - Man kann festlegen, ob man Notices angezeigt
* haben möchte, oder nicht!
* - Überprüfung auf install.php, sodass das Script
* nicht läuft, wenn man diese nicht gelöscht hat!
* - Die install-Funktion wurde aus der Klasse entfernt
* und ist nur noch in der install.php enthalten
* - Bugfix im SQL der Fkt db_install() wurde behoben!
* - Alle Notices entfernt!
*
*********************************************************/
?>
Edit²
Neue version 1.3, Changelog:
PHP-Code:
/********************************************************
* CHANGELOG:
* v1.2 to v1.3:
* - Bei Cookiebasiertem Login werden die Daten nun
* in nur einem Cookie gespeichert! Dazu werden sie
* zu einem String zusammengefügt, getrennt durch einen
* Seperator!
* - Cookie-String-Seperator lässt sich einstellen.
* - Pfad, in dem Cookie gilt, lässt sich nun auch
* bei den $cfg - Variablen anpassen!
* - kleinen Bugfix. PHPSESSID-Cookie wird nun nur
* gelöscht, falls Sessions aktiviert sind!
* - Weitere Notices behoben!
*
*********************************************************/
?>
Edit³
Neue version 1.4, Changelog:
PHP-Code:
/********************************************************
* CHANGELOG:
* v1.3 to v1.4:
* - großer Bugfix. Und zwar werden die Variablen nun
* nicht per global definiert und dann in die Klasse
* geladen, sondern in richtigem OOP stil an den
* Konstruktor übergeben!
*
*********************************************************/
?>
Ich hoffe, es gefällt euch!
Und für mein erstes Projekt find ich das ganz ordentlich!
mfg
björn
p.s.: ich habe von keinem einzigen anderen Login Script abgeschaut
[COLOR=red]Edit: Warum kann ich keinen Anhang mehr ändern?[/COLOR] Naja dann eben auf meinem privaten Hosting!
login class 1.4
Kommentar