Wie kann ich feststellen, ob eine Sitzung aktiv ist?

Wenn Sie dies wünschen, können Sie auf verschiedene Arten feststellen, ob eine Sitzung gestartet wurde oder nicht:

$isSessionActive = (session_id() != "");

Oder

$isSessionActive = defined('SID');

Beide schlagen jedoch fehl, wenn Sie eine Sitzung starten und dann schließen.session_id() gibt die ID der vorherigen Sitzung zurück, währendSID wird definiert. Ebenso ruftsession_start() an dieser Stelle wird ein @ generierE_NOTICE wenn Sie bereits eine Sitzung aktiv haben. Gibt es eine vernünftige Möglichkeit, um zu überprüfen, ob eine Sitzung gerade aktiv ist, ohne auf die Ausgabepufferung zurückgreifen zu müssen? Der Shut-Up-Operator @session_start()) oder was anderes genauso hackiges?

EDIT: Ich habe einen Patch geschrieben, um zu versuchen, diese Funktionalität in PHP zu integrieren:http: //bugs.php.net/bug.php? id = 52982

EDIT 29.08.2011: Neue Funktion in PHP 5.4 hinzugefügt, um dieses Problem zu beheben: "Sitzungsstatus über die neue Funktion session_status anzeigen"

// as of 8/29/2011
$isSessionActive = (session_status() == PHP_SESSION_ACTIVE);

EDIT 05.12.11:session_status () im PHP-Handbuch.

Antworten auf die Frage(14)

Ihre Antwort auf die Frage