X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fsession-functions.php;h=e1dff3de408cdfb6b00ff983ba70fb9eb2baaf41;hp=f7a21be84fca9d50b0a1c9f71bc4622edbfcd19a;hb=d1922ab361b5e104b7c14b28c76d1c47651635ef;hpb=cd7d344ea7007cfa20413acd3e03e50f0ab86d86 diff --git a/inc/session-functions.php b/inc/session-functions.php index f7a21be84f..e1dff3de40 100644 --- a/inc/session-functions.php +++ b/inc/session-functions.php @@ -10,13 +10,8 @@ * -------------------------------------------------------------------- * * 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] ?>