Istek başına, bir oturum gibi, başlatılmış olup olmadığını söyleyebilir birkaç farklı yolu vardır:
$isSessionActive = (session_id() != "");
Veya:
$isSessionActive = defined('SID');
Bir oturumu başlamak Ancak, bu, o zaman kapatın başarısız iki; SID tanımlanacak ise session_id(), önceki oturumun kimliği döndürür. Zaten etkin bir oturumu varsa, aynı şekilde, bu noktada session_start() çağıran E_NOTICE üretecektir. Bir oturum anda aktif ise, çıkış buffering'e başvurmak zorunda kalmadan, shut-up operatörü (@session_start()) kontrol etmek için aklı başında yol, ya da eşit olarak hacky başka bir şey var mı?
EDIT: I wrote a patch to try to get this functionality included in PHP: http://bugs.php.net/bug.php?id=52982 strong>
EDIT 8/29/2011: New function added to PHP trunk/5.4 to fix this: "Expose session status via new function, session_status" strong>
// as of 8/29/2011
$isSessionActive = (session_status() == PHP_SESSION_ACTIVE);
EDIT 12/5/11: session_status() PHP kılavuzda. Strong>