* -------------------------------------------------------------------- *
* Kurzbeschreibung : Sitzungsrelevante Funktionen *
* -------------------------------------------------------------------- *
- * $Revision:: $ *
- * $Date:: $ *
- * $Tag:: 0.2.1-FINAL $ *
- * $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 *
} 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;
// Is the variable there?
if (isSessionVariableSet($var)) {
// Then get it secured!
- $value = SQL_ESCAPE($GLOBALS['_SESSION'][$var]);
+ if ((isInstaller()) || (!isSqlLinkUp())) {
+ // Secure string without escaping (and compiling)
+ $value = secureString($GLOBALS['_SESSION'][$var]);
+ } else {
+ // Escape string with SQL driver
+ $value = sqlEscapeString($GLOBALS['_SESSION'][$var]);
+ }
} // END - if
// Return the value
// 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;
+}
+
+// Initializes session
+function initSession () {
+ //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'CALLED!');
+
+ // Is ext-sql_patches there and newer?
+ if (isExtensionInstalledAndNewer('sql_patches', '0.5.3')) {
+ // Set session save path if set
+ if ((isConfigEntrySet('session_save_path')) && (getConfig('session_save_path') != '')) {
+ // Please make sure this valid!
+ session_save_path(getConfig('session_save_path'));
+ } // END - if
+ } // END - if
+
+ // Is a session id there?
+ if (!isValidSession()) {
+ // Start the session
+ $GLOBALS['valid_session'] = session_start();
+ $GLOBALS['isValidSession'] = TRUE;
+ } // END - if
+
+ //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'EXIT!');
+}
+
// [EOF]
?>