]> git.mxchange.org Git - mailer.git/blobdiff - inc/session-functions.php
Updated copyright year.
[mailer.git] / inc / session-functions.php
index f7a21be84fca9d50b0a1c9f71bc4622edbfcd19a..e1dff3de408cdfb6b00ff983ba70fb9eb2baaf41 100644 (file)
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Sitzungsrelevante Funktionen                     *
  * -------------------------------------------------------------------- *
- * $Revision::                                                        $ *
- * $Date::                                                            $ *
- * $Tag:: 0.2.1-FINAL                                                 $ *
- * $Author::                                                          $ *
- * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2013 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2016 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -44,18 +39,24 @@ if (!defined('__SECURITY')) {
 function setSession ($var, $value) {
        // Abort in CSS mode here
        if (isCssOutputMode()) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Is CSS mode:' . $var . '=' . $value);
                return TRUE;
        } // END - if
 
        // Trim value and session variable
        $var   = trim(secureString($var));
-       $value = trim($value);
+
+       // Is the value no array?
+       if (!is_array($value)) {
+               // Then trim it
+               $value = trim($value);
+       } // END - if
 
        // Is the session variable set?
-       if (('' . $value . '' == '') && (isSessionVariableSet($var))) {
+       if ((!is_array($value)) && ('' . $value . '' == '') && (isSessionVariableSet($var))) {
                // Remove the session
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'UNSET:' . $var . '=' . getSession($var));
-               unset($GLOBALS['_SESSION'][$var]);
+               unset($_SESSION[$var]);
                if (isPhpVersionEqualNewer('5.3.0')) {
                        // session_unregister() is deprecated as of 5.3.0
                        return TRUE;
@@ -63,10 +64,10 @@ function setSession ($var, $value) {
                        // PHP version < 5.3.0
                        return session_unregister($var);
                }
-       } elseif (('' . $value . '' != '') && (!isSessionVariableSet($var))) {
+       } elseif ((is_array($value)) || (('' . $value . '' != '') && (!isSessionVariableSet($var)))) {
                // Set session
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SET:' . $var . '=' . $value);
-               $GLOBALS['_SESSION'][$var] = $value;
+               $_SESSION[$var] = $value;
                if (isPhpVersionEqualNewer('5.3.0')) {
                        // session_unregister() is deprecated as of 5.3.0
                        return TRUE;
@@ -77,7 +78,7 @@ function setSession ($var, $value) {
        } elseif (!empty($value)) {
                // Update session
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'UPDATE:' . $var . '=' . $value);
-               $GLOBALS['_SESSION'][$var] = $value;
+               $_SESSION[$var] = $value;
                return TRUE;
        }
 
@@ -89,29 +90,36 @@ function setSession ($var, $value) {
 // Check whether a session variable is set
 function isSessionVariableSet ($var) {
        // Warning: DO NOT call logDebugMessage() from here, this will cause an endless loop
-       return (isset($GLOBALS['_SESSION'][$var]));
+       return (isset($_SESSION[$var]));
 }
 
 // Returns whether the value of the session variable or NULL if not set
 function getSession ($var) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'var=' . $var . ' - CALLED!');
        // Default is not found ;-)
        $value = NULL;
 
        // 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($_SESSION[$var]);
+               } else {
+                       // Escape string with SQL driver
+                       $value = sqlEscapeString($_SESSION[$var]);
+               }
        } // END - if
 
        // Return the value
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $var . '=' . $value);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $var . '=' . $value . ' - EXIT!');
        return $value;
 }
 
 // Get whole session array
 function getSessionArray () {
        // Simply return it
-       return $GLOBALS['_SESSION'];
+       return $_SESSION;
 }
 
 // Destroy user session
@@ -135,8 +143,8 @@ function destroyAdminSession ($destroy = FALSE) {
        setAdminMd5('');
        setAdminLast(0);
 
-       // Set cache to FALSE
-       $GLOBALS['isAdmin'] = FALSE;
+       // Remove "cache"
+       unset($GLOBALS['isAdmin']);
 
        // Destroy session if requested and return status
        if ($destroy === TRUE) {
@@ -150,14 +158,14 @@ function destroyAdminSession ($destroy = FALSE) {
 // Destroys session and resets some "caches"
 function destroySession () {
        // Unset "cache"
-       unset($GLOBALS['isSessionValid']);
+       unset($GLOBALS['isValidSession']);
 
        // Destroy session
        return session_destroy();
 }
 
 // Checks whether the session is valid
-function isSessionValid () {
+function isValidSession () {
        // Is there cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Then determine it
@@ -183,5 +191,31 @@ function isSessionDataSet ($sessionData) {
        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
+               //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Initializing session ...');
+               $GLOBALS['valid_session']  = session_start();
+               $GLOBALS['isValidSession'] = TRUE;
+
+               //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'session_id=' . session_id());
+       } // END - if
+
+       //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'EXIT!');
+}
+
 // [EOF]
 ?>