Hallo aitee,
nochmal gaaanz langsam zum Mitschreiben:
Sessionverwaltung und Login haben miteinander (fast) nix zu tun.
Die Session identifiziert nur einen bestimmten Besucher. Über seine Rechte sagt sie alleine nichts aus. Du musst für diesen Besucher die Rechte explizit feststellen lassen und DANN kannst Du sie z.B. in die Sessiondatei eintragen. Das ist eine ganz einfache Lösung.
Leider werden diese Rechte dann auch noch in der Sessiondatei drinstehen, wenn der benutzer schon lange schläft. Wenn jetzt jemand die Sessionnummer errät (Das ist hier ein Fachausdruck! Also bitte nicht wieder die Diskussion über die Wahrscheinlichkeit.) oder findet, dann würde er fälschlich als derjenige User identifiziert, der sich bereits logged hat.
Ich würde das deshalb anders machen:
Die Zugriffsrechte müssen von Kriterien abhängen, die flüchtig sind, also nirgens auf der Strecke (unter Normalumständen) gespeichert werden. Das wären z.B. Username und Passwort über das Standard-Anmeldefenster (Auth 401) oder "Session-"Cookies, die nicht auf der Platte gespeichert werden oder "normale" Cookies mit ohne Speicherung. PHP übersetzt hier "Lebensdauer=0" mit "nicht speichern, nur für die aktuelle Browserinstanz und ihre Childs nutzen".
Wenn Du also einen Cookie mit
setcookie ( "PIN", $pin, 0, "/", "$damain")
nach erfolgreichem Logincheck an den Client schickst und ihn in Deine Session einträgst ($_SESSION["pin"] = $pin), dann hast Du ein relativ sicheres Kriterium dafür, von welchem Client die Session gerade genutzt wird. Denn nur genau ein Client hat auch den passenden Cookie zur Sessionnummer. Das musst Du dann natürlich in jedem Script am Anfang kontrollieren.
if ($_SESSION["pin"] == $_COOKIE["PIN"])
{
$logged = true;
}
Und das logout geht dann auch relativ unproblematisch: der User erbittet es und wenn er berechtigt ist, sendest Du einfach einen Cookie an den User setcookie("PIN") und löschst den aus der Session $_SESION["pin"]="" und schon ist der User nicht mehr logged.
Ich hoffe, das war jetzt einigermaßen verständlich.
Speil mal ein bisschen mit den Cookies. Es lohnt sich.
Grüße
Tom