X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fsession-functions.php;h=ebee5cf6f13ce77965ae8a9b48b57d943bf2ff9d;hb=2a3ba926e150b00158fea263240ea88f1894124f;hp=384e3f465ec1a2d7df2195b81b1f31b524c6f28d;hpb=596c8ab32594401ca84abfbfe35513ddfff31bec;p=mailer.git diff --git a/inc/session-functions.php b/inc/session-functions.php index 384e3f465e..ebee5cf6f1 100644 --- a/inc/session-functions.php +++ b/inc/session-functions.php @@ -122,27 +122,66 @@ function destroyMemberSession ($destroy = FALSE) { // Remove all user data from session if ($destroy === TRUE) { // Destroy whole session - return session_destroy(); + return destroySession(); } else { return ((setSession('userid', '')) && (setSession('u_hash', ''))); } } // Destroys the admin session -function destroyAdminSession ($destroy = TRUE) { +function destroyAdminSession ($destroy = FALSE) { // Kill maybe existing session variables including array elements setAdminId(0); setAdminMd5(''); setAdminLast(''); + // Set cache to FALSE + $GLOBALS['isAdmin'] = FALSE; + // Destroy session if requested and return status if ($destroy === TRUE) { - return session_destroy(); + return destroySession(); } // END - if - // All fine if we shall not really destroy the session + // All fine if the session shall not really be destroyed return TRUE; } +// Destroys session and resets some "caches" +function destroySession () { + // Unset "cache" + unset($GLOBALS['isSessionValid']); + + // Destroy session + return session_destroy(); +} + +// Checks whether the session is valid +function isSessionValid () { + // Is there cache? + if (!isset($GLOBALS[__FUNCTION__])) { + // Then determine it + $GLOBALS[__FUNCTION__] = ((isset($GLOBALS['valid_session'])) && ($GLOBALS['valid_session'] === TRUE) && (isset($_COOKIE[session_name()]))); + } // END - if + + // Return cache + return $GLOBALS[__FUNCTION__]; +} + +// Checks whether all given session data is set +function isSessionDataSet ($sessionData) { + // Default is set + $isset = TRUE; + + // Check all + foreach ($sessionData as $key) { + // Is this element set? + $isset = (($isset) && (isSessionVariableSet($key))); + } // END - foreach + + // Return result + return $isset; +} + // [EOF] ?>