Session

Lektor21

Erfahrenes Mitglied
Hallo!

Also ich habe beim Logout folgendes stehen, um die Session zu zerstören:

PHP:
session_start();
session_destroy();
session_unset();

Normalerweise müsste doch dann beim nächsten einloggen eine neue Session_ID existieren oder? Aber wenn ich mich wieder einlogge steht die gleiche ID da wie vor dem ausloggen!?

Wie kann ich eine Session erfolgreich zerstören und auch prüfen, ob dieses zerstört wurden ist?

Irgendwie so;

PHP:
if ($Session == "")
{
echo "Erfolgreich";
}

else

{
echo "Fehlgeschlagen";
}
 
Durch die session_destroy()-Funktion wird die Sitzung bereits zerstört, das heißt die serverseitigen Sitzungsdaten gelöscht. Nur die Sitzungs-ID ist noch in dem Sinne „gültig“, dass wenn der Client sie bei der nächsten Anfrage mitsenden, sie wieder die ID einer neuen Sitzung wird.

Falls du das nicht möchtest, solltest du nur durch dein eigenes Skript initiierte Sitzungen zulassen. Das ist beispielsweise mit Folgendem möglich:
PHP:
session_start();
if( !isset($_SESSION['CREATED']) ) {
	session_regenerate_id(true); // löscht gleichzeitig die alten Sitzungsdaten
	$_SESSION['CREATED'] = time();
}
Diese Information kannst du zudem zusätzlich nutzen, um die Sitzungs-ID regelmäßig zu wechseln:
PHP:
if( $_SESSION['CREATED']+600 < time() ) {
	session_regenerate_id();
	$_SESSION['CREATED'] = time();
}
 
Zurück