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