unneccessary globals removed
[mailer.git] / inc / mysql-manager.php
index ad4a3bdb69e99b36e9b42a7b503324ac344921ac..da0aa7159611826a404838f107ab7fd70ba07e1f 100644 (file)
@@ -41,18 +41,18 @@ if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
 //
 function ADD_MODULE_TITLE($mod)
 {
-       global $MODULES, $CONFIG;
+       global $cacheArray, $_CONFIG;
        $name = ""; $result = false;
        // Load title
        if (!mxchange_installing)
        {
-               if ((GET_EXT_VERSION("cache") >= "0.1.2") && (is_array($MODULES['module'])) && (isset($MODULES['module'][$mod])))
+               if ((GET_EXT_VERSION("cache") >= "0.1.2") && (isset($cacheArray['modules']['module'])) && (is_array($cacheArray['modules']['module'])) && (isset($cacheArray['modules']['module'][$mod])))
                {
                        // Load from cache
-                       $name = $MODULES['title'][$mod];
+                       $name = $cacheArray['modules']['title'][$mod];
 
                        // Update cache hits
-                       $CONFIG['cache_hits']++;
+                       $_CONFIG['cache_hits']++;
                }
                 else
                {
@@ -82,7 +82,7 @@ function ADD_MODULE_TITLE($mod)
 // Check validity of a given module name (no file extension)
 function CHECK_MODULE($mod) {
        // We need them now here...
-       global $MODULES, $CONFIG, $CACHE;
+       global $cacheArray, $_CONFIG, $cacheInstance;
 
        // Filter module name (names with low chars and underlines are fine!)
        $mod = preg_replace("/[^a-z_]/", "", $mod);
@@ -108,17 +108,17 @@ function CHECK_MODULE($mod) {
 
        // Check if cache is latest version
        $locked = 'Y'; $hidden = 'N'; $admin = 'N'; $mem = 'N'; $found = false;
-       if ((GET_EXT_VERSION("cache") >= "0.1.2") && (is_array($MODULES['module']))) {
+       if ((GET_EXT_VERSION("cache") >= "0.1.2") && (isset($cacheArray['modules']['module'])) && (is_array($cacheArray['modules']['module']))) {
                // Is the module cached?
-               if (isset($MODULES['locked'][$mod_chk])) {
+               if (isset($cacheArray['modules']['locked'][$mod_chk])) {
                        // Check cache
-                       $locked = $MODULES['locked'][$mod_chk];
-                       $hidden = $MODULES['hidden'][$mod_chk];
-                       $admin  = $MODULES['admin_only'][$mod_chk];
-                       $mem    = $MODULES['mem_only'][$mod_chk];
+                       $locked = $cacheArray['modules']['locked'][$mod_chk];
+                       $hidden = $cacheArray['modules']['hidden'][$mod_chk];
+                       $admin  = $cacheArray['modules']['admin_only'][$mod_chk];
+                       $mem    = $cacheArray['modules']['mem_only'][$mod_chk];
 
                        // Update cache hits
-                       $CONFIG['cache_hits']++;
+                       $_CONFIG['cache_hits']++;
                        $found = true;
                } else {
                        // No, then we have to update it!
@@ -177,17 +177,14 @@ function CHECK_MODULE($mod) {
                        }
 
                        // Destroy cache here
-                       if (GET_EXT_VERSION("cache") >= "0.1.2")
-                       {
-                               if ($CACHE->cache_file("mod_reg", true)) $CACHE->cache_destroy();
-                               unset($MODULES);
+                       if (GET_EXT_VERSION("cache") >= "0.1.2") {
+                               if ($cacheInstance->cache_file("mod_reg", true)) $cacheInstance->cache_destroy();
+                               unset($cacheArray['modules']);
                        }
 
                        // And reload data
                        $ret = CHECK_MODULE($mod_chk);
-               }
-                else
-               {
+               } else {
                        // Module not found we don't add it to the database
                        $ret = "404";
                }
@@ -199,7 +196,7 @@ function CHECK_MODULE($mod) {
 // Add menu description pending on given file name (without path!)
 function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true)
 {
-       global $DEPTH, $CONFIG;
+       global $DEPTH, $_CONFIG;
        $LINK_ADD = ""; $OUT = ""; $AND = "";
        // First we have to do some analysis...
        if (ereg("action-", $file)) {
@@ -238,8 +235,8 @@ function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true)
                        }
                        break;
                }
-               $DUMMY = substr($search, 0, -4);
-               $AND .= " AND action='".GET_ACTION($ACC_LVL, $DUMMY)."'";
+               $dummy = substr($search, 0, -4);
+               $AND .= " AND action='".GET_ACTION($ACC_LVL, $dummy)."'";
        } elseif (($ACC_LVL == "sponsor") || ($ACC_LVL == "engine")) {
                // Sponsor / engine menu
                $type = "what";
@@ -272,7 +269,7 @@ function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true)
                if ($return) {
                        // Return title
                        return $ret;
-               } elseif (((GET_EXT_VERSION("sql_patches") >= "0.2.3") && ($CONFIG['youre_here'] == 'Y')) || ((IS_ADMIN()) && ($MOD_CHECK == "admin"))) {
+               } elseif (((GET_EXT_VERSION("sql_patches") >= "0.2.3") && ($_CONFIG['youre_here'] == 'Y')) || ((IS_ADMIN()) && ($MOD_CHECK == "admin"))) {
                        // Output HTML code
                        $OUT = $prefix."<STRONG><A class=\"you_are_here\" href=\"".URL."/modules.php?module=".$MOD_CHECK."&amp;".$type."=".$search.$LINK_ADD."\">".$ret."</A></STRONG>\n";
                        //* DEBUG: */ echo __LINE__."*".$type."/".$GLOBALS['what']."*<br />\n";
@@ -294,7 +291,7 @@ function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true)
 }
 //
 function ADD_MENU($MODE, $act, $wht) {
-       global $CONFIG;
+       global $_CONFIG;
        if (!VALIDATE_MENU_ACTION($MODE, $act, $wht, true)) return CODE_MENU_NOT_VALID;
        $main_cnt = 0; $AND = ""; $main_action = ""; $sub_what = "";
        if (!IS_ADMIN())
@@ -342,7 +339,7 @@ function ADD_MENU($MODE, $act, $wht) {
                                        }
 
                                        // Menu title
-                                       $content .= $CONFIG['middot'].$sub_title;
+                                       $content .= $_CONFIG['middot'].$sub_title;
 
                                        if ($test) {
                                                $content .= "</A>";
@@ -392,25 +389,25 @@ function ADD_MENU($MODE, $act, $wht) {
 // This patched function will reduce many SELECT queries for the specified or current admin login
 function IS_ADMIN($admin="")
 {
-       global $_COOKIE, $ADMINS, $CONFIG;
+       global $cacheArray, $_CONFIG;
        $ret = false; $passCookie = ""; $valPass = "";
        //* DEBUG: */ echo __LINE__."ADMIN:".$admin."<br />";
 
        // If admin login is not given take current from cookies...
-       if ((empty($admin)) && (!empty($_COOKIE['admin_login'])) && (!empty($_COOKIE['admin_md5'])))
+       if ((empty($admin)) && (!empty($_SESSION['admin_login'])) && (!empty($_SESSION['admin_md5'])))
        {
-               $admin = SQL_ESCAPE($_COOKIE['admin_login']); $passCookie = $_COOKIE['admin_md5'];
+               $admin = SQL_ESCAPE($_SESSION['admin_login']); $passCookie = $_SESSION['admin_md5'];
        }
        //* DEBUG: */ echo __LINE__."ADMIN:".$admin."/".$passCookie."<br />";
 
        // Search in array for entry
-       if ((!empty($passCookie)) && (isset($ADMINS['password'][$admin])) && (!empty($admin)))
+       if ((!empty($passCookie)) && (isset($cacheArray['admins']['password'][$admin])) && (!empty($admin)))
        {
                // Count cache hits
-               $CONFIG['cache_hits']++;
+               $_CONFIG['cache_hits']++;
 
                // Login data is valid or not?
-               $valPass = generatePassString($ADMINS['password'][$admin]);
+               $valPass = generatePassString($cacheArray['admins']['password'][$admin]);
        }
         elseif (!empty($admin))
        {
@@ -541,7 +538,7 @@ function WHAT_IS_VALID($act, $wht, $type="guest")
 //
 function IS_LOGGED_IN()
 {
-       global $_COOKIE, $status, $LAST;
+       global $status, $LAST;
        if (!is_array($LAST)) $LAST = array();
        $ret = false;
 
@@ -549,7 +546,7 @@ function IS_LOGGED_IN()
        FIX_DELETED_COOKIES(array('userid', 'u_hash', 'lifetime'));
 
        // Are cookies set?
-       if ((!empty($GLOBALS['userid'])) && (!empty($_COOKIE['u_hash'])) && (!empty($_COOKIE['lifetime'])) && (defined('COOKIE_PATH')))
+       if ((!empty($GLOBALS['userid'])) && (!empty($_SESSION['u_hash'])) && (!empty($_SESSION['lifetime'])) && (defined('COOKIE_PATH')))
        {
                // Cookies are set with values, but are they valid?
                $result = SQL_QUERY_ESC("SELECT password, status, last_module, last_online FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
@@ -566,8 +563,8 @@ function IS_LOGGED_IN()
                        if ((!empty($mod)) && (empty($LAST['module']))) { $LAST['module'] = $mod; $LAST['online'] = $onl; }
 
                        // So did we now have valid data and an unlocked user?
-                       //* DEBUG: */ echo $valPass."<br>".$_COOKIE['u_hash']."<br>";
-                       if (($status == "CONFIRMED") && ($valPass == $_COOKIE['u_hash']))
+                       //* DEBUG: */ echo $valPass."<br>".$_SESSION['u_hash']."<br>";
+                       if (($status == "CONFIRMED") && ($valPass == $_SESSION['u_hash']))
                        {
                                // Account is confirmed and all cookie data is valid so he is definely logged in! :-)
                                $ret = true;
@@ -576,28 +573,24 @@ function IS_LOGGED_IN()
                        {
                                // Maybe got locked etc.
                                //* DEBUG: */ echo __LINE__."!!!<br>";
-                               @setcookie("userid", "", time() - 3600, COOKIE_PATH);
-                               @setcookie("u_hash", "", time() - 3600, COOKIE_PATH);
-                               @setcookie("lifetime", "0", time() - 3600, COOKIE_PATH);
+                               set_session("userid", "", time() - 3600, COOKIE_PATH);
+                               set_session("u_hash", "", time() - 3600, COOKIE_PATH);
+                               set_session("lifetime", "", time() - 3600, COOKIE_PATH);
 
                                // Remove array elements to prevent errors
                                unset($GLOBALS['userid']);
-                               unset($_COOKIE['u_hash']);
-                               unset($_COOKIE['lifetime']);
                        }
                }
                 else
                {
                        // Cookie data is invalid!
                        //* DEBUG: */ echo __LINE__."***<br>";
-                       @setcookie("userid", "", time() - 3600, COOKIE_PATH);
-                       @setcookie("u_hash", "", time() - 3600, COOKIE_PATH);
-                       @setcookie("lifetime", "0", time() - 3600, COOKIE_PATH);
+                       set_session("userid", "", time() - 3600, COOKIE_PATH);
+                       set_session("u_hash", "", time() - 3600, COOKIE_PATH);
+                       set_session("lifetime", "", time() - 3600, COOKIE_PATH);
 
                        // Remove array elements to prevent errors
                        unset($GLOBALS['userid']);
-                       unset($_COOKIE['u_hash']);
-                       unset($_COOKIE['lifetime']);
                }
 
                // Free memory
@@ -607,14 +600,12 @@ function IS_LOGGED_IN()
        {
                // Cookie data is invalid!
                //* DEBUG: */ echo __LINE__."///<br>";
-               @setcookie("userid", "", time() - 3600, COOKIE_PATH);
-               @setcookie("u_hash", "", time() - 3600, COOKIE_PATH);
-               @setcookie("lifetime", "0", time() - 3600, COOKIE_PATH);
+               set_session("userid", "", time() - 3600, COOKIE_PATH);
+               set_session("u_hash", "", time() - 3600, COOKIE_PATH);
+               set_session("lifetime", "", time() - 3600, COOKIE_PATH);
 
                // Remove array elements to prevent errors
                unset($GLOBALS['userid']);
-               unset($_COOKIE['u_hash']);
-               unset($_COOKIE['lifetime']);
        }
        return $ret;
 }
@@ -624,16 +615,16 @@ function UPDATE_LOGIN_DATA ($UPDATE=true) {
        if (!is_array($LAST)) $LAST = array();
 
        // Are the required cookies set?
-       if ((!isset($GLOBALS['userid'])) || (!isset($_COOKIE['u_hash'])) || (!isset($_COOKIE['lifetime']))) {
+       if ((!isset($GLOBALS['userid'])) || (!isset($_SESSION['u_hash'])) || (!isset($_SESSION['lifetime']))) {
                // Nope, then return here to caller function
                return false;
        } else {
                // Secure user ID
-               $GLOBALS['userid'] = bigintval($_COOKIE['userid']);
+               $GLOBALS['userid'] = bigintval($_SESSION['userid']);
        }
 
        // Extract last online time (life) and how long is auto-login valid (time)
-       $newl = time() + bigintval($_COOKIE['lifetime']);
+       $newl = time() + bigintval($_SESSION['lifetime']);
 
        // Recheck if logged in
        if (!IS_LOGGED_IN()) return false;
@@ -648,7 +639,7 @@ function UPDATE_LOGIN_DATA ($UPDATE=true) {
                // Maybe first login time?
                if (empty($mod)) $mod = "login";
 
-               if (@setcookie("userid", $GLOBALS['userid'], $newl, COOKIE_PATH) && @setcookie("u_hash", SQL_ESCAPE($_COOKIE['u_hash']), $newl, COOKIE_PATH) && @setcookie("lifetime", bigintval($_COOKIE['lifetime']), $newl, COOKIE_PATH)) {
+               if (set_session("userid", $GLOBALS['userid'], $newl, COOKIE_PATH) && set_session("u_hash", SQL_ESCAPE($_SESSION['u_hash']), $newl, COOKIE_PATH) && set_session("lifetime", bigintval($_SESSION['lifetime']), $newl, COOKIE_PATH)) {
                        // This will be displayed on welcome page! :-)
                        if (empty($LAST['module'])) {
                                $LAST['module'] = $mod; $LAST['online'] = $onl;
@@ -665,9 +656,9 @@ function UPDATE_LOGIN_DATA ($UPDATE=true) {
         else
        {
                // Destroy session, we cannot update!
-               @setcookie("userid", "", time() - 3600, COOKIE_PATH);
-               @setcookie("u_hash", "", time() - 3600, COOKIE_PATH);
-               @setcookie("lifetime", "0", time() - 3600, COOKIE_PATH);
+               set_session("userid", "", time() - 3600, COOKIE_PATH);
+               set_session("u_hash", "", time() - 3600, COOKIE_PATH);
+               set_session("lifetime", "", time() - 3600, COOKIE_PATH);
        }
 }
 //
@@ -735,7 +726,7 @@ function GET_MOD_DESCR($MODE, $wht)
 //
 function SEND_MODE_MAILS($mod, $modes)
 {
-       global $CONFIG, $DATA;
+       global $_CONFIG, $DATA;
 
        // Load hash
        $result_main = SQL_QUERY_ESC("SELECT password FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
@@ -745,11 +736,11 @@ function SEND_MODE_MAILS($mod, $modes)
                list($hashDB) = SQL_FETCHROW($result_main);
 
                // Extract salt from cookie
-               $salt = substr($_COOKIE['u_hash'], 0, -40);
+               $salt = substr($_SESSION['u_hash'], 0, -40);
 
                // Now let's compare passwords
                $hash = generatePassString($hashDB);
-               if (($hash == $_COOKIE['u_hash']) || ($_POST['pass1'] == $_POST['pass2'])) {
+               if (($hash == $_SESSION['u_hash']) || ($_POST['pass1'] == $_POST['pass2'])) {
                        // Load user's data
                        $result = SQL_QUERY_ESC("SELECT sex, surname, family, street_nr, country, zip, city, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND password='%s' LIMIT 1",
                         array($GLOBALS['userid'], $hashDB), __FILE__, __LINE__);
@@ -797,7 +788,7 @@ function SEND_MODE_MAILS($mod, $modes)
                                        // Load template
                                        $msg = LOAD_EMAIL_TEMPLATE("member_mydata_notify", $content, $GLOBALS['userid']);
 
-                                       if ($CONFIG['admin_notify'] == 'Y') {
+                                       if ($_CONFIG['admin_notify'] == 'Y') {
                                                // The admin needs to be notified about a profile change
                                                $msg_admin = "admin_mydata_notify";
                                                $sub_adm = ADMIN_CHANGED_DATA;
@@ -846,7 +837,7 @@ function SEND_MODE_MAILS($mod, $modes)
                        } else {
                                SEND_ADMIN_EMAILS($sub_adm, LOAD_EMAIL_TEMPLATE($msg_admin, $content, $GLOBALS['userid']));
                        }
-               } elseif ($CONFIG['admin_notify'] == 'Y') {
+               } elseif ($_CONFIG['admin_notify'] == 'Y') {
                        // Cannot send mails to admin!
                        $content = CANNOT_SEND_ADMIN_MAILS;
                } else {
@@ -969,10 +960,11 @@ function GET_PAYMENT ($pid, $full=false)
        return $ret;
 }
 //
-function GET_PAY_POINTS($pid, $DATA="price")
+function GET_PAY_POINTS($pid, $lookFor="price")
 {
        $ret = "-1";
-       $result = SQL_QUERY_ESC("SELECT %s FROM "._MYSQL_PREFIX."_payments WHERE id=%d LIMIT 1", array($DATA, $pid), __FILE__, __LINE__);
+       $result = SQL_QUERY_ESC("SELECT %s FROM "._MYSQL_PREFIX."_payments WHERE id=%d LIMIT 1",
+               array($lookFor, $pid), __FILE__, __LINE__);
        if (SQL_NUMROWS($result) == 1)
        {
                // Payment type found... :-)
@@ -994,15 +986,15 @@ function REMOVE_RECEIVER(&$ARRAY, $key, $uid, $pool_id, $stats_id="", $bonus=fal
                if ($stats_id > 0)
                {
                        // Only when we got a real stats ID continue searching for the entry
-                       $type = "NORMAL"; $ROW = "stats_id";
-                       if ($bonus) { $type = "BONUS"; $ROW = "bonus_id"; }
+                       $type = "NORMAL"; $rowName = "stats_id";
+                       if ($bonus) { $type = "BONUS"; $rowName = "bonus_id"; }
                        $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_links WHERE %s='%s' AND userid=%d AND link_type='%s' LIMIT 1",
-                        array($ROW, $stats_id, bigintval($uid), $type), __FILE__, __LINE__);
+                        array($rowName, $stats_id, bigintval($uid), $type), __FILE__, __LINE__);
                        if (SQL_NUMROWS($result) == 0)
                        {
                                // No, so we add one!
                                $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_links (%s, userid, link_type) VALUES ('%s', '%s', '%s')",
-                                array($ROW, $stats_id, bigintval($uid), $type), __FILE__, __LINE__);
+                                array($rowName, $stats_id, bigintval($uid), $type), __FILE__, __LINE__);
                                $ret = "done";
                        }
                         else
@@ -1019,27 +1011,25 @@ function REMOVE_RECEIVER(&$ARRAY, $key, $uid, $pool_id, $stats_id="", $bonus=fal
        return $ret;
 }
 //
-function GET_TOTAL_DATA($search, $TABLE, $DATA, $WHERE="userid", $ONLY_ROWS=false)
+function GET_TOTAL_DATA($search, $tableName, $lookFor, $whereStatement="userid", $onlyRows=false)
 {
        $ret = "0";
-       if ($ONLY_ROWS)
-       {
+       if ($onlyRows) {
                // Count rows
                $result = SQL_QUERY_ESC("SELECT COUNT(%s) FROM "._MYSQL_PREFIX."_%s WHERE %s='%s'",
-                array($DATA, $TABLE, $WHERE, $search), __FILE__, __LINE__);
-       }
-        else
-       {
+                array($lookFor, $tableName, $whereStatement, $search), __FILE__, __LINE__);
+       } else {
                // Add all rows
                $result = SQL_QUERY_ESC("SELECT SUM(%s) FROM "._MYSQL_PREFIX."_%s WHERE %s='%s'",
-                array($DATA, $TABLE, $WHERE, $search), __FILE__, __LINE__);
+                array($lookFor, $tableName, $whereStatement, $search), __FILE__, __LINE__);
        }
+
        // Load row
        list($ret) = SQL_FETCHROW($result);
-       //* DEBUG: */ echo __LINE__."*".$DATA."/".$search."/".$TABLE."/".$ret."*<br />\n";
+       //* DEBUG: */ echo __LINE__."*".$DATA."/".$search."/".$tableName."/".$ret."*<br />\n";
        SQL_FREERESULT($result);
        if (empty($ret)) {
-               if (($DATA == "counter") || ($DATA == "id")) {
+               if (($lookFor == "counter") || ($lookFor == "id")) {
                        $ret = "0";
                } else {
                        $ret = "0.00000";
@@ -1061,7 +1051,7 @@ function GET_TOTAL_DATA($search, $TABLE, $DATA, $WHERE="userid", $ONLY_ROWS=fals
  */
 function ADD_POINTS_REFSYSTEM($uid, $points, $send_notify=false, $rid="0", $locked=false, $add_mode="ref")
 {
-       global $DEPTH, $_GET, $CONFIG, $DATA, $link;
+       global $DEPTH, $_CONFIG, $DATA, $link;
 
        // When $uid = 0 add points to jackpot
        if ($uid == "0")
@@ -1140,7 +1130,7 @@ function ADD_POINTS_REFSYSTEM($uid, $points, $send_notify=false, $rid="0", $lock
 //
 function UPDATE_REF_COUNTER($uid)
 {
-       global $REF_LVL, $link, $CACHE;
+       global $REF_LVL, $link, $cacheInstance;
        // Make it sure referral level zero (member him-/herself) is at least selected
        if (empty($REF_LVL)) $REF_LVL = "0";
 
@@ -1173,13 +1163,13 @@ function UPDATE_REF_COUNTER($uid)
         elseif ((($ref == $uid) || ($ref == 0)) && (GET_EXT_VERSION("cache") >= "0.1.2"))
        {
                // Remove cache here
-               if ($CACHE->cache_file("refsystem", true)) $CACHE->cache_destroy();
+               if ($cacheInstance->cache_file("refsystem", true)) $cacheInstance->cache_destroy();
        }
 }
 //
 function UPDATE_ONLINE_LIST($SID, $mod, $act, $wht)
 {
-       global $_COOKIE, $_SERVER, $link, $_GET, $CONFIG;
+       global $link, $_CONFIG;
        // Do not update online list when extension is deactivated
        if (!EXT_IS_ACTIVE("online", true)) return;
 
@@ -1200,10 +1190,10 @@ function UPDATE_ONLINE_LIST($SID, $mod, $act, $wht)
                // Is administrator
                $ADMIN = 'Y';
        }
-       if (!empty($_COOKIE['refid']))
+       if (!empty($_SESSION['refid']))
        {
                // Check cookie
-               if ($_COOKIE['refid'] > 0) $rid = $GLOBALS['refid'];
+               if ($_SESSION['refid'] > 0) $rid = $GLOBALS['refid'];
        }
 
        // Now Read data
@@ -1243,9 +1233,8 @@ WHERE sid='%s' LIMIT 1",
        }
 
        // Purge old entries
-       $TIMEOUT = time() - $CONFIG['online_timeout'];
-       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_online WHERE timestamp <= %d",
-        array($TIMEOUT), __FILE__, __LINE__);
+       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_online WHERE timestamp <= (UNIX_TIMESTAMP() - %d)",
+        array($_CONFIG['online_timeout']), __FILE__, __LINE__);
 }
 // OBSULETE: Sends out mail to all administrators
 function SEND_ADMIN_EMAILS($subj, $msg)
@@ -1261,12 +1250,12 @@ function SEND_ADMIN_EMAILS($subj, $msg)
 // Get ID number from administrator's login name
 function GET_ADMIN_ID($login)
 {
-       global $ADMINS;
+       global $cacheArray;
        $ret = "-1";
-       if (!empty($ADMINS['aid'][$login]))
+       if (!empty($cacheArray['admins']['aid'][$login]))
        {
                // Check cache
-               $ret = $ADMINS['aid'][$login];
+               $ret = $cacheArray['admins']['aid'][$login];
                if (empty($ret)) $ret = "-1";
        }
         else
@@ -1286,12 +1275,12 @@ function GET_ADMIN_ID($login)
 // Get password hash from administrator's login name
 function GET_ADMIN_HASH($login)
 {
-       global $ADMINS;
+       global $cacheArray;
        $ret = "-1";
-       if (!empty($ADMINS['password'][$login]))
+       if (!empty($cacheArray['admins']['password'][$login]))
        {
                // Check cache
-               $ret = $ADMINS['password'][$login];
+               $ret = $cacheArray['admins']['password'][$login];
                if (empty($ret)) $ret = "-1";
        }
         else
@@ -1310,12 +1299,12 @@ function GET_ADMIN_HASH($login)
 //
 function GET_ADMIN_LOGIN($aid)
 {
-       global $ADMINS;
+       global $cacheArray;
        $ret = "***";
-       if (!empty($ADMINS['login']['aid']))
+       if (!empty($cacheArray['admins']['login']['aid']))
        {
                // Check cache
-               if (!empty($ADMINS['login'][$aid]))     $ret = $ADMINS['login'][$aid];
+               if (!empty($cacheArray['admins']['login'][$aid]))       $ret = $cacheArray['admins']['login'][$aid];
                if (empty($ret)) $ret = "***";
        }
         else
@@ -1387,9 +1376,9 @@ function ADD_OPTION_LINES($table, $id, $name, $default="",$special="",$where="")
 }
 // Aiut
 function activateExchange() {
-       global $CONFIG;
+       global $_CONFIG;
        $result = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' AND max_mails > 0", __FILE__, __LINE__);
-       if (SQL_NUMROWS($result) >= $CONFIG['activate_xchange'])
+       if (SQL_NUMROWS($result) >= $_CONFIG['activate_xchange'])
        {
                // Free memory
                SQL_FREERESULT($result);
@@ -1398,7 +1387,7 @@ function activateExchange() {
                $SQLs = array(
                        "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='N', hidden='N', mem_only='Y' WHERE module='order' LIMIT 1",
                        "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE what='order' OR what='unconfirmed' LIMIT 2",
-                       "UPDATE "._MYSQL_PREFIX."_config SET activate_xchange='0' WHERE config='0' LIMIT 1"
+                       "UPDATE "._MYSQL_PREFIX."_config SET activate_xchange='0' WHERE config=0 LIMIT 1"
                );
 
                // Run SQLs
@@ -1413,7 +1402,7 @@ function activateExchange() {
 //
 function DELETE_USER_ACCOUNT($uid, $reason)
 {
-       $POINTS = 0;
+       $points = 0;
        $result = SQL_QUERY_ESC("SELECT (SUM(p.points) - d.used_points) AS points
 FROM "._MYSQL_PREFIX."_user_points AS p
 LEFT JOIN "._MYSQL_PREFIX."_user_data AS d
@@ -1422,7 +1411,7 @@ WHERE p.userid=%d", array(bigintval($uid)), __FILE__, __LINE__);
        if (SQL_NUMROWS($result) == 1)
        {
                // Save his points to add them to the jackpot
-               list($POINTS) = SQL_FETCHROW($result);
+               list($points) = SQL_FETCHROW($result);
                SQL_FREERESULT($result);
 
                // Delete points entries as well
@@ -1432,11 +1421,11 @@ WHERE p.userid=%d", array(bigintval($uid)), __FILE__, __LINE__);
                if (GET_EXT_VERSION("mediadata") >= "0.0.4")
                {
                        // Update database
-                       MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $POINTS);
+                       MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $points);
                }
 
                // Now, when we have all his points adds them do the jackpot!
-               ADD_JACKPOT($POINTS);
+               ADD_JACKPOT($points);
        }
 
        // Delete category selections as well...
@@ -1451,7 +1440,7 @@ WHERE p.userid=%d", array(bigintval($uid)), __FILE__, __LINE__);
        }
 
        // Now a mail to the user and that's all...
-       $msg = LOAD_EMAIL_TEMPLATE("del-user", stripslashes($reason), $uid);
+       $msg = LOAD_EMAIL_TEMPLATE("del-user", $reason, $uid);
        SEND_EMAIL($uid, ADMIN_DEL_ACCOUNT, $msg);
 
        // Ok, delete the account!
@@ -1460,11 +1449,11 @@ WHERE p.userid=%d", array(bigintval($uid)), __FILE__, __LINE__);
 //
 function META_DESCRIPTION($mod, $wht)
 {
-       global $CONFIG, $DEPTH;
+       global $_CONFIG, $DEPTH;
        if (($mod != "admin") && ($mod != "login"))
        {
                // Exclude admin and member's area
-               $DESCR = MAIN_TITLE." ".trim($CONFIG['title_middle'])." ".ADD_DESCR("guest", "what-".$wht, true);
+               $DESCR = MAIN_TITLE." ".trim($_CONFIG['title_middle'])." ".ADD_DESCR("guest", "what-".$wht, true);
                unset($DEPTH);
                OUTPUT_HTML("<META name=\"description\" content=\"".$DESCR."\">");
        }
@@ -1518,36 +1507,38 @@ function SUB_JACKPOT($points)
        }
 }
 //
-function IS_DEMO()
-{
-       global $_COOKIE;
-       return ((EXT_IS_ACTIVE("demo")) && ($_COOKIE['admin_login'] == "demo"));
+function IS_DEMO() {
+       return ((EXT_IS_ACTIVE("demo")) && ($_SESSION['admin_login'] == "demo"));
 }
 //
 function LOAD_CONFIG($no="0")
 {
-       global $CFG_CACHE, $CONFIG;
-       $CFG_DUMMY = false;
+       global $cacheArray;
+       $CFG_DUMMY = array();
+
        // Check for cache extension, cache-array and if the requested configuration is in cache
-       if ((is_array($CFG_CACHE)) && (isset($CFG_CACHE['config'][$no])))
-       {
+       if ((is_array($cacheArray)) && (isset($cacheArray['config'][$no])) && (is_array($cacheArray['config'][$no]))) {
                // Load config from cache
-               $CFG_DUMMY = array();
-               foreach ($CFG_CACHE as $element=>$cfgs)
-               {
-                       $CFG_DUMMY[$element] = $cfgs[$no];
+               //* DEBUG: */ echo gettype($cacheArray['config'][$no])."<br />\n";
+               foreach ($cacheArray['config'][$no] as $key=>$value) {
+                       $CFG_DUMMY[$key] = $value;
                }
 
                // Count cache hits
-               $CONFIG['cache_hits']++;
-       }
-        else
-       {
+               $CFG_DUMMY['cache_hits']++;
+       } else {
                // Load config from DB
-               $result_config = SQL_QUERY_ESC("SELECT * FROM "._MYSQL_PREFIX."_config WHERE config='%d' LIMIT 1",
-                array(bigintval($no)), __FILE__, __LINE__);
+               $result_config = SQL_QUERY_ESC("SELECT * FROM "._MYSQL_PREFIX."_config WHERE config=%d LIMIT 1",
+                       array(bigintval($no)), __FILE__, __LINE__);
+
+               // Get config from database
                $CFG_DUMMY = SQL_FETCHARRAY($result_config);
+
+               // Free result
                SQL_FREERESULT($result_config);
+
+               // Remember this config in the array
+               $cacheArray['config'][$no] = $CFG_DUMMY;
        }
 
        // Return config array
@@ -1580,23 +1571,23 @@ function GET_WHAT($MOD_CHECK)
 //
 function MODULE_HAS_MENU($mod)
 {
-       global $EXTENSIONS, $MODULES, $CONFIG;
+       global $cacheArray, $_CONFIG;
 
        // All is false by default
        $ret = false;
        if (GET_EXT_VERSION("cache") >= "0.1.2")
        {
-               if (isset($MODULES['has_menu'][$mod]))
+               if (isset($cacheArray['modules']['has_menu'][$mod]))
                {
                        // Check module cache and count hit
-                       if ($MODULES['has_menu'][$mod] == 'Y') $ret = true;
-                       $CONFIG['cache_hits']++;
+                       if ($cacheArray['modules']['has_menu'][$mod] == 'Y') $ret = true;
+                       $_CONFIG['cache_hits']++;
                }
-                elseif (isset($EXTENSIONS['ext_menu'][$mod]))
+                elseif (isset($cacheArray['extensions']['ext_menu'][$mod]))
                {
                        // Check cache and count hit
-                       if ($EXTENSIONS['ext_menu'][$mod] == 'Y') $ret = true;
-                       $CONFIG['cache_hits']++;
+                       if ($cacheArray['extensions']['ext_menu'][$mod] == 'Y') $ret = true;
+                       $_CONFIG['cache_hits']++;
                }
        }
        if ((GET_EXT_VERSION("sql_patches") >= "0.3.6") && ($ret === false))