Fix for guest menu (opps)
[mailer.git] / inc / mysql-manager.php
index 756e52d3b3b8b0486221633f513929059159229d..79fcc639933dfe75f3a4648fd43923d552ff89a3 100644 (file)
@@ -32,7 +32,7 @@
  ************************************************************************/
 
 // Some security stuff...
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) {
+if (!defined('__SECURITY')) {
        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
        require($INC);
 }
@@ -44,7 +44,8 @@ function ADD_MODULE_TITLE($mod) {
 
        // Is the script installed?
        if (isBooleanConstantAndTrue('mxchange_installed')) {
-               if ((GET_EXT_VERSION("cache") >= "0.1.2") && (isset($cacheArray['modules']['module'])) && (is_array($cacheArray['modules']['module'])) && (isset($cacheArray['modules']['module'][$mod]))) {
+               // Check if cache is valid
+               if ((GET_EXT_VERSION("cache") >= "0.1.2") && (isset($cacheArray['modules']['module'])) && (in_array($mod, $cacheArray['modules']['module']))) {
                        // Load from cache
                        $name = $cacheArray['modules']['title'][$mod];
 
@@ -56,7 +57,7 @@ function ADD_MODULE_TITLE($mod) {
                        list($name) = SQL_FETCHROW($result);
                        SQL_FREERESULT($result);
                }
-       }
+       } // END - if
 
        // Trim name
        $name = trim($name);
@@ -68,8 +69,10 @@ function ADD_MODULE_TITLE($mod) {
                if (SQL_NUMROWS($result) == 0) {
                        // Add module to database
                        $dummy = CHECK_MODULE($mod);
-               }
-       }
+               } // END - if
+       } // END - if
+
+       // Return name
        return $name;
 }
 
@@ -342,7 +345,7 @@ function ADD_MENU($MODE, $act, $wht) {
                        // Load menu header template
                        LOAD_TEMPLATE($MODE."_menu_title", false, $content);
 
-                       $result_sub = SQL_QUERY_ESC("SELECT title, what FROM "._MYSQL_PREFIX."_%s_menu WHERE action='%s' AND what != '' AND what IS NOT NULL".$AND." ORDER BY sort",
+                       $result_sub = SQL_QUERY_ESC("SELECT title, what FROM "._MYSQL_PREFIX."_%s_menu WHERE action='%s' AND what != '' AND what IS NOT NULL ".$AND." ORDER BY sort",
                         array($MODE, $main_action), __FILE__, __LINE__);
                        $ctl = SQL_NUMROWS($result_sub);
                        if ($ctl > 0) {
@@ -437,12 +440,18 @@ function IS_ADMIN($admin="")
        //* DEBUG: */ echo __LINE__."ADMIN:".$admin."/".$passCookie."<br />";
 
        // Search in array for entry
-       if ((!empty($passCookie)) && (isset($cacheArray['admins']['password'][$admin])) && (!empty($admin))) {
+       if (isset($cacheArray['admin_hash'])) {
+               // Use cached string
+               $valPass = $cacheArray['admin_hash'];
+       } elseif ((!empty($passCookie)) && (isset($cacheArray['admins']['password'][$admin])) && (!empty($admin))) {
                // Count cache hits
                $_CONFIG['cache_hits']++;
 
                // Login data is valid or not?
                $valPass = generatePassString($cacheArray['admins']['password'][$admin]);
+
+               // Cache it away
+               $cacheArray['admin_hash'] = $valPass;
        } elseif (!empty($admin)) {
                // Search for admin
                $result = SQL_QUERY_ESC("SELECT HIGH_PRIORITY password FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
@@ -454,9 +463,12 @@ function IS_ADMIN($admin="")
                        // Admin login was found so let's load password from DB
                        list($passDB) = SQL_FETCHROW($result);
 
+                       // Temporary cache it
+                       $cacheArray['admins']['password'][$admin] = $passDB;
+
                        // Generate password hash
                        $valPass = generatePassString($passDB);
-               }
+               } // END - if
 
                // Free memory
                SQL_FREERESULT($result);
@@ -618,9 +630,7 @@ function IS_MEMBER()
 
                // Free memory
                SQL_FREERESULT($result);
-       }
-        else
-       {
+       } else {
                // Cookie data is invalid!
                //* DEBUG: */ echo __LINE__."///<br />";
                destroy_user_session();
@@ -628,6 +638,8 @@ function IS_MEMBER()
                // Remove array elements to prevent errors
                unset($GLOBALS['userid']);
        }
+
+       // Return status
        return $ret;
 }
 //
@@ -893,7 +905,7 @@ function COUNT_MODULE($mod)
 function GET_ACTION ($MODE, &$wht)
 {
        global $ret, $_CONFIG;
-       // DEPRECATED: Init status
+       // @DEPRECATED Init status
        $ret = "";
 
        //* DEBUG: */ echo __LINE__."=".$MODE."/".$wht."/".$GLOBALS['action']."=<br />";