X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fsession-functions.php;h=a4a80d1f3b18e19b0c47e0e78706add7c7e3a02a;hb=45799353e6886efecaa6fe169848321a81a08c6e;hp=7601911fc83cda7d869817202f844b493098a9eb;hpb=77f3926f7352b06b77ff14bfb9cd1a79a5a09cd1;p=mailer.git diff --git a/inc/session-functions.php b/inc/session-functions.php index 7601911fc8..a4a80d1f3b 100644 --- a/inc/session-functions.php +++ b/inc/session-functions.php @@ -66,7 +66,7 @@ function setSession ($var, $value) { } elseif (('' . $value . '' != '') && (!isSessionVariableSet($var))) { // Set session //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SET:' . $var . '=' . $value); - $GLOBALS['_SESSION'][$var] = $value; + $GLOBALS['_SESSION'][$var] = $value; if (isPhpVersionEqualNewer('5.3.0')) { // session_unregister() is deprecated as of 5.3.0 return TRUE; @@ -122,30 +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(''); + setAdminLast(0); // 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] ?>