X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fmysql-manager.php;h=4be52eb6d64ad6284509abd822d8a45170a6ad60;hb=f8dbc8804f8f36a3348418cbe6ad0bf15ca50196;hp=e4bcad187cb98d9505a358ec57139a435f9ef9a2;hpb=4ceb80adf5708c4602e61aef0b160dbec34511f2;p=mailer.git diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php index e4bcad187c..4be52eb6d6 100644 --- a/inc/mysql-manager.php +++ b/inc/mysql-manager.php @@ -32,8 +32,7 @@ ************************************************************************/ // Some security stuff... -if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) -{ +if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) { $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php"; require($INC); } @@ -73,6 +72,7 @@ function ADD_MODULE_TITLE($mod) { } return $name; } + // Check validity of a given module name (no file extension) function CHECK_MODULE($mod) { // We need them now here... @@ -101,7 +101,7 @@ function CHECK_MODULE($mod) { if ((!isBooleanConstantAndTrue('mxchange_installed')) || (isBooleanConstantAndTrue('mxchange_installing')) || (!isBooleanConstantAndTrue('admin_registered'))) return "done"; // Check if cache is latest version - $locked = 'Y'; $hidden = 'N'; $admin = 'N'; $mem = 'N'; $found = false; + $locked = "Y"; $hidden = "N"; $admin = "N"; $mem = "N"; $found = false; if ((GET_EXT_VERSION("cache") >= "0.1.2") && (isset($cacheArray['modules']['module'])) && (is_array($cacheArray['modules']['module']))) { // Is the module cached? if (isset($cacheArray['modules']['locked'][$mod_chk])) { @@ -132,16 +132,16 @@ function CHECK_MODULE($mod) { // Check returned values against current access permissions // // Admin access ----- Guest access ----- --- Guest or member? --- - if ((IS_ADMIN()) || (($locked == 'N') && ($admin == 'N') && (($mem == 'N') || (IS_LOGGED_IN())))) { + if ((IS_ADMIN()) || (($locked == "N") && ($admin == "N") && (($mem == "N") || (IS_LOGGED_IN())))) { // If you are admin you are welcome for everything! $ret = "done"; - } elseif ($locked == 'Y') { + } elseif ($locked == "Y") { // Module is locked $ret = "locked"; - } elseif (($mem == 'Y') && (!IS_LOGGED_IN())) { + } elseif (($mem == "Y") && (!IS_LOGGED_IN())) { // You have to login first! $ret = "mem_only"; - } elseif (($admin == 'Y') && (!IS_ADMIN())) { + } elseif (($admin == "Y") && (!IS_ADMIN())) { // Only the Admin is allowed to enter this module! $ret = "admin_only"; } @@ -187,9 +187,9 @@ function CHECK_MODULE($mod) { // Return the value return $ret; } + // Add menu description pending on given file name (without path!) -function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true) -{ +function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true) { global $DEPTH, $_CONFIG; $LINK_ADD = ""; $OUT = ""; $AND = ""; // First we have to do some analysis... @@ -209,7 +209,7 @@ function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true) $MOD_CHECK = $GLOBALS['module']; break; } - $AND = " AND what=''"; + $AND = " AND (what='' OR what IS NULL)"; } elseif (ereg("what-", $file)) { // This is an admin what file! $type = "what"; @@ -251,19 +251,23 @@ function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true) if (!$return) $DEPTH++; $prefix = ""; } + $prefix .= " -> "; + if (ereg(".php", $search)) { $search = substr($search, 0, strpos($search, ".php")); } + $result = SQL_QUERY_ESC("SELECT title FROM "._MYSQL_PREFIX."_%s_menu WHERE %s='%s' ".$AND." LIMIT 1", array($ACC_LVL, $type, $search), __FILE__, __LINE__); + if (SQL_NUMROWS($result) == 1) { list($ret) = SQL_FETCHROW($result); SQL_FREERESULT($result); 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."".$ret."\n"; //* DEBUG: */ echo __LINE__."*".$type."/".$GLOBALS['what']."*
\n"; @@ -287,22 +291,28 @@ function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true) // function ADD_MENU($MODE, $act, $wht) { global $_CONFIG; + + // Init some variables + $main_cnt = 0; + $AND = ""; + $main_action = ""; + $sub_what = ""; + if (!VALIDATE_MENU_ACTION($MODE, $act, $wht, true)) return CODE_MENU_NOT_VALID; - $main_cnt = 0; $AND = ""; $main_action = ""; $sub_what = ""; - if (!IS_ADMIN()) - { + + // Non-admin shall not see all menus + if (!IS_ADMIN()) { $AND = "AND visible='Y' AND locked='N'"; } + // Load SQL data and add the menu to the output stream... - $result_main = SQL_QUERY_ESC("SELECT title, action FROM "._MYSQL_PREFIX."_%s_menu WHERE what='' ".$AND." ORDER BY sort", + $result_main = SQL_QUERY_ESC("SELECT title, action FROM "._MYSQL_PREFIX."_%s_menu WHERE (what='' OR what IS NULL) ".$AND." ORDER BY sort", array($MODE), __FILE__, __LINE__); //* DEBUG: */ echo __LINE__."/".$main_cnt."/".$main_action."/".$sub_what.":".$GLOBALS['what']."*
\n"; - if (SQL_NUMROWS($result_main) > 0) - { + if (SQL_NUMROWS($result_main) > 0) { OUTPUT_HTML(""); // There are menus available, so we simply display them... :) - while (list($main_title, $main_action) = SQL_FETCHROW($result_main)) - { + while (list($main_title, $main_action) = SQL_FETCHROW($result_main)) { //* DEBUG: */ echo __LINE__."/".$main_cnt."/".$main_action."/".$sub_what.":".$GLOBALS['what']."*
\n"; // Load menu header template $BLOCK_MODE = false; $act = $main_action; @@ -311,11 +321,10 @@ function ADD_MENU($MODE, $act, $wht) { $result_sub = SQL_QUERY_ESC("SELECT title, what FROM "._MYSQL_PREFIX."_%s_menu WHERE action='%s' AND what != '' ".$AND." ORDER BY sort", array($MODE, $main_action), __FILE__, __LINE__); $ctl = SQL_NUMROWS($result_sub); - if ($ctl > 0) - { + if ($ctl > 0) { $cnt=0; - while (list($sub_title, $sub_what) = SQL_FETCHROW($result_sub)) - { + while (list($sub_title, $sub_what) = SQL_FETCHROW($result_sub)) { + // Init content $content = ""; // Full file name for checking menu @@ -334,7 +343,7 @@ function ADD_MENU($MODE, $act, $wht) { } // Menu title - $content .= $_CONFIG['middot'].$sub_title; + $content .= $_CONFIG['menu_blur_spacer'].$sub_title; if ($test) { $content .= ""; @@ -355,7 +364,7 @@ function ADD_MENU($MODE, $act, $wht) { } else { // This is a menu block... ;-) $BLOCK_MODE = true; - $INC_BLOCK = sprintf(PATH."inc/modules/%s/action-%s.php", $MODE, $main_action); + $INC_BLOCK = sprintf("%sinc/modules/%s/action-%s.php", PATH, $MODE, $main_action); if ((file_exists($INC_BLOCK)) && (is_readable($INC_BLOCK))) { // Load include file if ((!EXT_IS_ACTIVE($main_action)) || ($main_action == "online")) OUTPUT_HTML(" @@ -390,7 +399,9 @@ function IS_ADMIN($admin="") // If admin login is not given take current from cookies... if ((empty($admin)) && (isSessionVariableSet('admin_login')) && (isSessionVariableSet('admin_md5'))) { - $admin = SQL_ESCAPE(get_session('admin_login')); $passCookie = get_session('admin_md5'); + // Get admin login and password from session/cookies + $admin = SQL_ESCAPE(get_session('admin_login')); + $passCookie = SQL_ESCAPE(get_session('admin_md5')); } //* DEBUG: */ echo __LINE__."ADMIN:".$admin."/".$passCookie."
"; @@ -411,6 +422,8 @@ function IS_ADMIN($admin="") if (SQL_NUMROWS($result) == 1) { // Admin login was found so let's load password from DB list($passDB) = SQL_FETCHROW($result); + + // Generate password hash $valPass = generatePassString($passDB); } @@ -420,8 +433,8 @@ function IS_ADMIN($admin="") if (!empty($valPass)) { // Check if password is valid - //* DEBUG: */ echo __LINE__."*".$valPass."/".$passCookie)."*
"; - $ret = (($valPass == $passCookie) || (($valPass == "*FAILED*") && (!EXT_IS_ACTIVE("cache")))); + //* DEBUG: */ echo __FUNCTION__."*".$valPass."/".$passCookie."*
\n"; + $ret = (($valPass == $passCookie) || ((strlen($valPass) == 32) && ($valPass == md5($passCookie))) || (($valPass == "*FAILED*") && (!EXT_IS_ACTIVE("cache")))); } // Return result of comparision @@ -666,7 +679,7 @@ function VALIDATE_MENU_ACTION ($MODE, $act, $wht, $UPDATE=false) else { // Admin login overview - $SQL = SQL_QUERY_ESC("SELECT id, what FROM "._MYSQL_PREFIX."_%s_menu WHERE action='%s' AND what=''".$ADD." ORDER BY action DESC LIMIT 1", + $SQL = SQL_QUERY_ESC("SELECT id, what FROM "._MYSQL_PREFIX."_%s_menu WHERE action='%s' AND (what='' OR what IS NULL)".$ADD." ORDER BY action DESC LIMIT 1", array($MODE, $act), __FILE__, __LINE__, false); } @@ -770,7 +783,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; @@ -814,12 +827,8 @@ function SEND_MODE_MAILS($mod, $modes) if (empty($content)) { if ((!empty($sub_adm)) && (!empty($msg_admin))) { // Send admin mail - if (GET_EXT_VERSION("admins") >= "0.4.1") { - SEND_ADMIN_EMAILS_PRO($sub_adm, $msg_admin, $content, $GLOBALS['userid']); - } else { - SEND_ADMIN_EMAILS($sub_adm, LOAD_EMAIL_TEMPLATE($msg_admin, $content, $GLOBALS['userid'])); - } - } elseif ($_CONFIG['admin_notify'] == 'Y') { + SEND_ADMIN_NOTIFICATION($sub_adm, $msg_admin, $content, $GLOBALS['userid']); + } elseif ($_CONFIG['admin_notify'] == "Y") { // Cannot send mails to admin! $content = CANNOT_SEND_ADMIN_MAILS; } else { @@ -906,39 +915,48 @@ function GET_ACTION ($MODE, &$wht) return $ret; } // -function GET_CATEGORY ($cid) -{ +function GET_CATEGORY ($cid) { + // Default is not found $ret = _CATEGORY_404; - $result = SQL_QUERY_ESC("SELECT cat FROM "._MYSQL_PREFIX."_cats WHERE id=%d LIMIT 1", array($cid), __FILE__, __LINE__); - if (SQL_NUMROWS($result) == 1) - { + + // Lookup the category + $result = SQL_QUERY_ESC("SELECT cat FROM "._MYSQL_PREFIX."_cats WHERE id=%d LIMIT 1", + array(bigintval($cid)), __FILE__, __LINE__); + if (SQL_NUMROWS($result) == 1) { // Category found... :-) list($ret) = SQL_FETCHROW($result); - SQL_FREERESULT($result); - } + } // END - if + + // Free result + SQL_FREERESULT($result); + + // Return result return $ret; } // -function GET_PAYMENT ($pid, $full=false) -{ +function GET_PAYMENT ($pid, $full=false) { + // Default is not found $ret = _PAYMENT_404; - $result = SQL_QUERY_ESC("SELECT mail_title, price FROM "._MYSQL_PREFIX."_payments WHERE id=%d LIMIT 1", array($pid), __FILE__, __LINE__); - if (SQL_NUMROWS($result) == 1) - { + + // Load payment data + $result = SQL_QUERY_ESC("SELECT mail_title, price FROM "._MYSQL_PREFIX."_payments WHERE id=%d LIMIT 1", + array(bigintval($pid)), __FILE__, __LINE__); + if (SQL_NUMROWS($result) == 1) { // Payment type found... :-) - if (!$full) - { + if (!$full) { // Return only title list($ret) = SQL_FETCHROW($result); - SQL_FREERESULT($result); - } - else - { + } else { // Return title and price list($t, $p) = SQL_FETCHROW($result); $ret = $t." / ".TRANSLATE_COMMA($p)." ".POINTS; } } + + // Free result + SQL_FREERESULT($result); + + // Return result return $ret; } // @@ -1026,7 +1044,7 @@ function GET_TOTAL_DATA($search, $tableName, $lookFor, $whereStatement="userid", * uid = Referral ID wich should receive... * points = ... xxx points * send_notify = shall I send the referral an email or not? - * refid = inc/modules/guest/what-confirm.php need this + * rid = inc/modules/guest/what-confirm.php need this * locked = Shall I pay it to normal (false) or locked (true) points ammount? * add_mode = Add points only to $uid or also refs? (WARNING! Changing "ref" to "direct" * will cause no referral will get points ever!!!) @@ -1102,7 +1120,7 @@ function ADD_POINTS_REFSYSTEM($uid, $points, $send_notify=false, $rid="0", $lock // And sent it away SEND_EMAIL($email, SUBJECT_DIRECT_PAYMENT, $msg); - LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_POINTS_ADDED); + if (!isset($_GET['mid'])) LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_POINTS_ADDED); } // Maybe there's another ref? @@ -1160,7 +1178,7 @@ function UPDATE_ONLINE_LIST($SID, $mod, $act, $wht) if (!EXT_IS_ACTIVE("online", true)) return; // Initialize variables - $uid = "0"; $rid = "0"; $MEM = 'N'; $ADMIN = 'N'; + $uid = "0"; $rid = "0"; $MEM = "N"; $ADMIN = "N"; if (!empty($GLOBALS['userid'])) { // Update member status only when userid is valid @@ -1168,13 +1186,13 @@ function UPDATE_ONLINE_LIST($SID, $mod, $act, $wht) { // Is valid user $uid = $GLOBALS['userid']; - $MEM = 'Y'; + $MEM = "Y"; } } if (IS_ADMIN()) { // Is administrator - $ADMIN = 'Y'; + $ADMIN = "Y"; } if (isSessionVariableSet('refid')) { // Check cookie @@ -1282,23 +1300,18 @@ function GET_ADMIN_HASH($login) return $ret; } // -function GET_ADMIN_LOGIN($aid) -{ +function GET_ADMIN_LOGIN($aid) { global $cacheArray; $ret = "***"; - if (!empty($cacheArray['admins']['login']['aid'])) - { + if (!empty($cacheArray['admins']['login']['aid'])) { // Check cache if (!empty($cacheArray['admins']['login'][$aid])) $ret = $cacheArray['admins']['login'][$aid]; if (empty($ret)) $ret = "***"; - } - else - { + } else { // Load from database $result = SQL_QUERY_ESC("SELECT login FROM "._MYSQL_PREFIX."_admins WHERE id=%d LIMIT 1", array(bigintval($aid)), __FILE__, __LINE__); - if (SQL_NUMROWS($result) == 1) - { + if (SQL_NUMROWS($result) == 1) { // Fetch data list($ret) = SQL_FETCHROW($result); } @@ -1309,25 +1322,19 @@ function GET_ADMIN_LOGIN($aid) return $ret; } // -function ADD_OPTION_LINES($table, $id, $name, $default="",$special="",$where="") -{ +function ADD_OPTION_LINES($table, $id, $name, $default="",$special="",$where="") { $ret = ""; - if ($table == "/ARRAY/") - { + if ($table == "/ARRAY/") { // Selection from array - if (is_array($id) && is_array($name) && sizeof($id) == sizeof($name)) - { + if (is_array($id) && is_array($name) && sizeof($id) == sizeof($name)) { // Both are arrays - foreach ($id as $idx=>$value) - { + foreach ($id as $idx=>$value) { $ret .= "\n"; } } + // Return - hopefully - the requested data return $ret; } @@ -1509,8 +1513,10 @@ function LOAD_CONFIG($no="0") $CFG_DUMMY[$key] = $value; } - // Count cache hits - $CFG_DUMMY['cache_hits']++; + // Count cache hits if exists + if ((isset($CFG_DUMMY['cache_hits'])) && (EXT_IS_ACTIVE("cache"))) { + $CFG_DUMMY['cache_hits']++; + } // END - if } else { // Load config from DB $result_config = SQL_QUERY_ESC("SELECT * FROM "._MYSQL_PREFIX."_config WHERE config=%d LIMIT 1", @@ -1565,13 +1571,13 @@ function MODULE_HAS_MENU($mod) if (isset($cacheArray['modules']['has_menu'][$mod])) { // Check module cache and count hit - if ($cacheArray['modules']['has_menu'][$mod] == 'Y') $ret = true; + if ($cacheArray['modules']['has_menu'][$mod] == "Y") $ret = true; $_CONFIG['cache_hits']++; } elseif (isset($cacheArray['extensions']['ext_menu'][$mod])) { // Check cache and count hit - if ($cacheArray['extensions']['ext_menu'][$mod] == 'Y') $ret = true; + if ($cacheArray['extensions']['ext_menu'][$mod] == "Y") $ret = true; $_CONFIG['cache_hits']++; } } @@ -1583,7 +1589,7 @@ function MODULE_HAS_MENU($mod) if (SQL_NUMROWS($result) == 1) { list($has_menu) = SQL_FETCHROW($result); - if ($has_menu == 'Y') $ret = true; + if ($has_menu == "Y") $ret = true; } // Free memory