X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=inc%2Fsession-functions.php;h=cd6eabdc5a241c6cf3788624a3cf5f9b40754dff;hb=f2b603aed42bfdf7a94611d7bae71fe3a1048890;hp=706a483c1c71f8e841a26ea005427ed2b524a99a;hpb=63f159414369b5ea19a8ca75d8cd8033c45d8341;p=mailer.git diff --git a/inc/session-functions.php b/inc/session-functions.php index 706a483c1c..cd6eabdc5a 100644 --- a/inc/session-functions.php +++ b/inc/session-functions.php @@ -16,7 +16,7 @@ * $Author:: $ * * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2009 by Roland Haeder * - * Copyright (c) 2009 - 2012 by Mailer Developer Team * + * Copyright (c) 2009 - 2013 by Mailer Developer Team * * For more information visit: http://mxchange.org * * * * This program is free software; you can redistribute it and/or modify * @@ -44,7 +44,7 @@ if (!defined('__SECURITY')) { function setSession ($var, $value) { // Abort in CSS mode here if (isCssOutputMode()) { - return true; + return TRUE; } // END - if // Trim value and session variable @@ -58,7 +58,7 @@ function setSession ($var, $value) { unset($GLOBALS['_SESSION'][$var]); if (isPhpVersionEqualNewer('5.3.0')) { // session_unregister() is deprecated as of 5.3.0 - return true; + return TRUE; } else { // PHP version < 5.3.0 return session_unregister($var); @@ -66,10 +66,10 @@ 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; + return TRUE; } else { // PHP version < 5.3.0 return session_register($var); @@ -78,12 +78,12 @@ function setSession ($var, $value) { // Update session //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'UPDATE:' . $var . '=' . $value); $GLOBALS['_SESSION'][$var] = $value; - return true; + return TRUE; } // Ignored (but valid) //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'IGNORED:' . $var . '=' . $value); - return true; + return TRUE; } // Check whether a session variable is set @@ -100,7 +100,7 @@ function getSession ($var) { // Is the variable there? if (isSessionVariableSet($var)) { // Then get it secured! - $value = SQL_ESCAPE($GLOBALS['_SESSION'][$var]); + $value = sqlEscapeString($GLOBALS['_SESSION'][$var]); } // END - if // Return the value @@ -115,28 +115,72 @@ function getSessionArray () { } // Destroy user session -function destroyMemberSession () { +function destroyMemberSession ($destroy = FALSE) { // Reset userid initMemberId(); // Remove all user data from session - return ((setSession('userid', '')) && (setSession('u_hash', ''))); + if ($destroy === TRUE) { + // Destroy whole session + 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(); + if ($destroy === TRUE) { + return destroySession(); + } // END - if + + // 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 - // All fine if we shall not really destroy the session - return true; + // 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]