Aufruf session_regenerate_id() auf jeder Seite kann ein wenig zu viel des Guten, auf dem Setup abhängig. Die Funktion wird verwendet, um Session-Hijacking zu verhindern, und sollte immer dann verwendet werden, wenn ein Benutzer seine Berechtigungsebene erhöht (z. B. sich anmeldet). Normalerweise würden Sie zu einer https-Verbindung wechseln, sobald ein Benutzer angemeldet ist, was bedeutet, dass Sie session_regenerate_id() nur einmal aufrufen müssen, da das neue Cookie über eine sichere Verbindung übertragen werden würde und nicht belauscht werden könnte. Wenn Sie jedoch kein SSL-Zertifikat auf Ihrem Server haben, kann das erneute Generieren des Sitzungscookies auf jeder Seite eine gute Option sein.
Wenn Sie session_regenerate_id() aufrufen, müssen Sie Sitzungsdaten nicht kopieren. Das alles wird von PHP für Sie erledigt. Grundsätzlich werden ein neues Sitzungstoken und ein Cookie erstellt, Sitzungsdaten werden in den Sitzungsspeicher kopiert, um mit dem neuen Token verknüpft zu werden, und wenn Sie als einziges Argument der Funktion den Wert true übergeben, wird die alte Sitzungsdatendatei auf der Festplatte gelöscht.
Was Sie in der Sitzung speichern, um anzuzeigen, ob ein Benutzer angemeldet ist, liegt bei Ihnen. Ich habe oft speichern nur einen einfachen Booleschen Wert, um anzuzeigen, wenn sie angemeldet sind, zusammen mit anderen Werten Benutzernamen, Namen zu halten, usw. Dann überprüfen, ob jemand angemeldet ist so einfach wie diese:
<?php
if ($_SESSION['logged_in']){
//User logged in
} else {
//User not logged in
}
?>
HTH.