Fix for bigintval() which does only take numbers
[mailer.git] / inc / session-functions.php
index a2d1e8c22bc8b2f623b35ee4b26cd1f485c47c2d..ca8a38fff1bfab6dccc20db7ac897deb3e5b4f10 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /************************************************************************
- * MXChange v0.2.1                                    Start: 02/28/2009 *
- * ===============                              Last change: 02/28/2009 *
+ * Mailer v0.2.1-FINAL                                Start: 02/28/2009 *
+ * ===================                          Last change: 02/28/2009 *
  *                                                                      *
  * -------------------------------------------------------------------- *
  * File              : session-functions.php                            *
  * $Date::                                                            $ *
  * $Tag:: 0.2.1-FINAL                                                 $ *
  * $Author::                                                          $ *
- * Needs to be in all Files and every File needs "svn propset           *
- * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
- * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009, 2010 by Mailer Developer Team                    *
  * For more information visit: http://www.mxchange.org                  *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
-       require($INC);
+       die();
 }
 
 // Unset/set session variables
 function setSession ($var, $value) {
        // Abort in CSS mode here
-       if ($GLOBALS['output_mode'] == 1) return true;
+       if (isCssOutputMode()) return true;
 
        // Trim value and session variable
-       $var = trim(SQL_ESCAPE($var)); $value = trim($value);
+       $var = trim(secureString($var)); $value = trim($value);
 
        // Is the session variable set?
-       if (("".$value."" == '') && (isSessionVariableSet($var))) {
+       if (('' . $value . '' == '') && (isSessionVariableSet($var))) {
                // Remove the session
-               //* DEBUG: */ echo "UNSET:".$var.'='.getSession($var)."<br />\n";
-               unset($_SESSION[$var]);
-               return session_unregister($var);
-       } elseif (("".$value."" != '') && (!isSessionVariableSet($var))) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'UNSET:' . $var . '=' . getSession($var));
+               unset($GLOBALS['_SESSION'][$var]);
+               if (phpversion() >= '5.3.1') {
+                       // session_unregister() is deprecated as of 5.3.1
+                       return true;
+               } else {
+                       // PHP version < 5.3.1
+                       return session_unregister($var);
+               }
+       } elseif (('' . $value . '' != '') && (!isSessionVariableSet($var))) {
                // Set session
-               //* DEBUG: */ echo "SET:".$var.'='.$value."<br />\n";
-               $_SESSION[$var] =  $value;
-               return session_register($var);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SET:' . $var . '=' . $value);
+               $GLOBALS['_SESSION'][$var] =  $value;
+               if (phpversion() >= '5.3.1') {
+                       // session_unregister() is deprecated as of 5.3.1
+                       return true;
+               } else {
+                       // PHP version < 5.3.1
+                       return session_register($var);
+               }
        } elseif (!empty($value)) {
                // Update session
-               //* DEBUG: */ echo "UPDATE:".$var.'='.$value."<br />\n";
-               $_SESSION[$var] = $value;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'UPDATE:' . $var . '=' . $value);
+               $GLOBALS['_SESSION'][$var] = $value;
                return true;
        }
 
        // Ignored (but valid)
-       //* DEBUG: */ echo "IGNORED:".$var.'='.$value."<br />\n";
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'IGNORED:' . $var . '=' . $value);
        return true;
 }
 
 // Check wether a session variable is set
 function isSessionVariableSet ($var) {
-       //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):var={$var}<br />\n";
-       return (isset($_SESSION[$var]));
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "var={$var}");
+       return (isset($GLOBALS['_SESSION'][$var]));
 }
 
 // Returns wether the value of the session variable or NULL if not set
@@ -84,28 +94,21 @@ function getSession ($var) {
        // Default is not found! ;-)
        $value = null;
 
-       // Is the variable there or cached values?
-       if (isset($GLOBALS['cache_array']['session'][$var])) {
-               // Get cached value (skips a lot SQL_ESCAPE() calles!
-               //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>): ".$var."-CACHE!<br />\n";
-               $value = $GLOBALS['cache_array']['session'][$var];
-       } elseif (isSessionVariableSet($var)) {
+       // Is the variable there?
+       if (isSessionVariableSet($var)) {
                // Then  get it secured!
-               //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>): ".$var."-RESOLVE!<br />\n";
-               $value = SQL_ESCAPE($_SESSION[$var]);
-
-               // Cache the value
-               $GLOBALS['cache_array']['session'][$var] = $value;
+               $value = SQL_ESCAPE($GLOBALS['_SESSION'][$var]);
        } // END - if
 
        // Return the value
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $var . '=' . $value);
        return $value;
 }
 
 // Destroy user session
-function destroyUserSession () {
+function destroyMemberSession () {
        // Reset userid
-       setUserId(0);
+       initMemberId();
 
        // Remove all user data from session
        return ((setSession('userid', '')) && (setSession('u_hash', '')));
@@ -114,13 +117,12 @@ function destroyUserSession () {
 // Destroys the admin session
 function destroyAdminSession ($destroy = true) {
        // Kill maybe existing session variables including array elements
-       setSession('admin_login', '');
-       setSession('admin_md5'  , '');
-       setSession('admin_last' , '');
-       setSession('admin_to'   , '');
+       setAdminId(0);
+       setAdminMd5('');
+       setAdminLast('');
 
-       // Destroy session and return status
-       if ($destroy) {
+       // Destroy session if requested and return status
+       if ($destroy === true) {
                return session_destroy();
        } // END - if