Vielen Dank an alle für die Antworten. Ich schreibe mal kurz zusammen, was für mich dabei rausgekommen ist. Vielleicht auch dann als brauchbare Hilfestellung für Archiv-Suchende ;)
Mein Login-System sieht dann im Großen und Ganzen so aus:
Anmeldung
1. Überprüft Passwort auf Sicherheit. Gibt ggf. hilfreiche Tipps, lässt aber im Prinzip alles zu
2. Speichert Benutzername/Passwort in Datenbank. Passwort als Hash in der Form: $hash = hash("sha512", md5($username).$password);
Login-Script
1. Überprüft den Benutzernamen
2. Erstellt den Hash und überprüft ihn mit der Datenbank
3. Überprüft ob Cookies aktiv sind, gibt sonst Warnung aus
4. Startet die Session und legt Variablen an: "CheckLogin"=TRUE, "IP-Addr", "Zugangsrechte"
5. Überprüft Anzahl der zuvor gescheiterten Logins. Gibt ggf. Warnung aus.
Prüf-Script ##### (zu Beginn eines jeden Seitenaufrufs)
1. Überprüft, ob "CheckLogin"=TRUE
2. Überprüft, ob IP unverändert: substr("IP-Add",0,strlen("IP-Addr")-3) für AOL-Nutzer
3. Überprüft, ob letzte Aktivität älter als 30min => Logout
4. Setzt letzte Aktivität auf aktuelle Zeit
5. Aktualisiert "Zugangsrechte" aus Datenbank
6. Weist neue SessionID zu (session_regenerate_id())
Hoffe, das jetzt alles "richtig" auf der Reihe zu haben. :-)