Some cleanups/improvements
[mailer.git] / inc / session-functions.php
index 384e3f465ec1a2d7df2195b81b1f31b524c6f28d..5421c1f013a55d2512f3c137b3675a4d17e51bb4 100644 (file)
@@ -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 *
@@ -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;
@@ -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
@@ -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('');
+       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['isValidSession']);
+
+       // Destroy session
+       return session_destroy();
+}
+
+// Checks whether the session is valid
+function isValidSession () {
+       // 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]
 ?>