X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=inc%2Ffunctions.php;h=de061a52f20c3308447babed89684e1272a9dd0a;hb=6c763653e88b9d10627e651ca59c7201d4b7d62b;hp=69bd2e1b058d204d7c9100f9de1fe82cc07ac19a;hpb=d7e1906faf03bfa063e50770b299726612ee5c2c;p=mailer.git diff --git a/inc/functions.php b/inc/functions.php index 69bd2e1b05..de061a52f2 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -243,7 +243,7 @@ function LOAD_TEMPLATE($template, $return=false, $content=array()) { // @DEPRECATED Try to rewrite the if() condition if ($template == "member_support_form") { // Support request of a member - $result = SQL_QUERY_ESC("SELECT userid, gender, surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1", + $result = SQL_QUERY_ESC("SELECT userid, gender, surname, family, email FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__); // Is content an array? @@ -397,7 +397,7 @@ function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML = "N", $FROM = "") { return; } else { // Load email address - $result_email = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1", array(bigintval($TO)), __FILE__, __LINE__); + $result_email = SQL_QUERY_ESC("SELECT email FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1", array(bigintval($TO)), __FILE__, __LINE__); //* DEBUG: */ print __FUNCTION__."(".__LINE__."):numRows=".SQL_NUMROWS($result_email)."\n"; // Does the user exist? @@ -603,23 +603,17 @@ function TRANSLATE_COMMA ($dotted, $cut=true, $max=0) { if ($max > 0) $maxComma = $max; // Cut zeros off? - if ($cut) { + if (($cut) && ($max == 0)) { // Test for commata if in cut-mode $com = explode(".", $dotted); - if (count($com) > 1) { - // Commata found, so only zeros? - if ($com[1] == str_repeat("0", strlen($com[1]))) { - // Only zeros, so display only one - $maxComma = 1; - } // END - if - } else { + if (count($com) < 2) { // Don't display commatas even if there are none... ;-) $maxComma = 0; } } // END - if // Debug log - //DEBUG_LOG(__FUNCTION__, __LINE__, "dotted={$dotted},maxComma={$maxComma}"); + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "dotted={$dotted},maxComma={$maxComma}"); // Translate it now switch (GET_LANGUAGE()) { @@ -712,19 +706,22 @@ function TRANSLATE_STATUS($status) { } // function GET_LANGUAGE() { - if (!empty($_GET['mx_lang'])) { - // Accept only first 2 chars - $lang = substr($_GET['mx_lang'], 0, 2); - } else { - // Do nothing - $lang = ""; - } + global $cacheArray; // Set default return value to default language from config $ret = DEFAULT_LANG; - // Check GET variable and cookie - if (!empty($lang)) { + // Init variable + $lang = ""; + + // Is the variable set + if (!empty($_GET['mx_lang'])) { + // Accept only first 2 chars + $lang = substr($_GET['mx_lang'], 0, 2); + } elseif (isset($cacheArray['language'])) { + // Use cached + $ret = $cacheArray['language']; + } elseif (!empty($lang)) { // Check if main language file does exist if (FILE_READABLE(PATH."inc/language/".$lang.".php")) { // Okay found, so let's update cookies @@ -737,6 +734,11 @@ function GET_LANGUAGE() { // Fixes a warning before the session has the mx_lang constant if (empty($ret)) $ret = DEFAULT_LANG; } + + // Cache entry + $cacheArray['language'] = $ret; + + // Return value return $ret; } // @@ -805,12 +807,12 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") { if (EXT_IS_ACTIVE("nickname")) { //* DEBUG: */ print __FUNCTION__."(".__LINE__."):NICKNAME!\n"; // Load nickname - $result = SQL_QUERY_ESC("SELECT surname, family, gender, email, nickname FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1", + $result = SQL_QUERY_ESC("SELECT surname, family, gender, email, nickname FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1", array(bigintval($UID)), __FILE__, __LINE__); } else { //* DEBUG: */ print __FUNCTION__."(".__LINE__."):NO-NICK!\n"; /// Load normal data - $result = SQL_QUERY_ESC("SELECT surname, family, gender, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1", + $result = SQL_QUERY_ESC("SELECT surname, family, gender, email FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1", array(bigintval($UID)), __FILE__, __LINE__); } @@ -1100,76 +1102,86 @@ function array_pk_sort(&$array, $a_sort, $primary_key = 0, $order = -1, $nums = $array = $dummy; } // -function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0") -{ - global $MONTH_DESCR; $OUT = ""; - if ($type == "yn") - { +function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0") { + global $MONTH_DESCR, $_CONFIG; + $OUT = ""; + + if ($type == "yn") { // This is a yes/no selection only! if ($id > 0) $prefix .= "[".$id."]"; $OUT .= " \n"; - } - else - { + } else { // Begin with regular selection box here if (!empty($prefix)) $prefix .= "_"; $type2 = $type; if ($id > 0) $type2 .= "[".$id."]"; $OUT .= " \n"; } - switch ($type) - { + + switch ($type) { case "day": // Day - for ($idx = 1; $idx < 32; $idx++) - { + for ($idx = 1; $idx < 32; $idx++) { $OUT .= "\n"; - } + } // END - for break; case "month": // Month - foreach ($MONTH_DESCR as $month => $descr) - { + foreach ($MONTH_DESCR as $month => $descr) { $OUT .= "\n"; - } + } // END - for break; case "year": // Year // Get current year $YEAR = date('Y', time()); + // Use configured min age or fixed? + if (GET_EXT_VERSION("other") >= "0.2.1") { + // Configured + $startYear = $YEAR - $_CONFIG['min_age']; + } else { + // Fixed 16 years + $startYear = $YEAR - 16; + } + + // Calculate earliest year (100 years old people can still enter Internet???) + $minYear = $YEAR - 100; + // Check if the default value is larger than minimum and bigger than actual year - if (($DEFAULT > 1930) && ($DEFAULT >= $YEAR)) - { - for ($idx = $YEAR; $idx < ($YEAR + 11); $idx++) - { + if (($DEFAULT > $minYear) && ($DEFAULT >= $YEAR)) { + for ($idx = $YEAR; $idx < ($YEAR + 11); $idx++) { $OUT .= "\n"; - } - } - elseif ($DEFAULT == -1) - { + } // END - for + } elseif ($DEFAULT == -1) { // Current year minus 1 - for ($idx = 2003; $idx <= ($YEAR + 1); $idx++) + for ($idx = $startYear; $idx <= ($YEAR + 1); $idx++) { $OUT .= "".$idx."\n"; } - } - else - { - // Get current year and subtract 16 (for erotic content) - $OUT .= "<1930\n"; - $YEAR = date('Y', time()) - 16; - for ($idx = 1930; $idx <= $YEAR; $idx++) - { + } else { + // Get current year and subtract the configured minimum age + $OUT .= "<".$minYear."\n"; + // Calculate earliest year depending on extension version + if (GET_EXT_VERSION("other") >= "0.2.1") { + // Use configured minimum age + $YEAR = date('Y', time()) - $_CONFIG['min_age']; + } else { + // Use fixed 16 years age + $YEAR = date('Y', time()) - 16; + } + + // Construct year selection list + for ($idx = $minYear; $idx <= $YEAR; $idx++) { $OUT .= "\n"; - } + } // END - for } break; @@ -1180,7 +1192,7 @@ function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0") $OUT .= "\n"; - } + } // END - for break; case "hour": @@ -1189,7 +1201,7 @@ function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0") $OUT .= "\n"; - } + } // END - for break; case "yn": @@ -1284,6 +1296,9 @@ function bigintval($num, $castValue = true) { // Has the whole value changed? if ("".$ret."" != "".$num."") { // Log the values + print(""); + debug_print_backtrace(); + die(""); DEBUG_LOG(__FUNCTION__, __LINE__, " num={$num},ret={$ret}"); } // END - if @@ -1342,38 +1357,46 @@ function GENERATE_IMAGE($img_code, $header=true) { imagedestroy($image); } // Create selection box or array of splitted timestamp -function CREATE_TIME_SELECTIONS($timestamp, $prefix="", $display="", $align="center", $return_array=false) { +function CREATE_TIME_SELECTIONS ($timestamp, $prefix="", $display="", $align="center", $return_array=false) { global $_CONFIG; // Calculate 2-seconds timestamp $stamp = round($timestamp); + //* DEBUG: */ print("*".$stamp."/".$timestamp."*"); // Do we have a leap year? $SWITCH = 0; $TEST = date('Y', time()) / 4; $M1 = date("m", time()); - $M2 = date("m", (time() + $stamp)); + $M2 = date("m", (time() + $timestamp)); // If so and if current time is before 02/29 and estimated time is after 02/29 then add 86400 seconds (one day) if ((floor($TEST) == $TEST) && ($M1 == "02") && ($M2 > "02")) $SWITCH = $_CONFIG['one_day']; // First of all years... - $Y = abs(floor($stamp / (31536000 + $SWITCH))); + $Y = abs(floor($timestamp / (31536000 + $SWITCH))); + //* DEBUG: */ print("Y={$Y}\n"); // Next months... - $M = abs(floor($stamp / 2628000 - $Y * 12)); + $M = abs(floor($timestamp / 2628000 - $Y * 12)); + //* DEBUG: */ print("M={$M}\n"); // Next weeks - $W = abs(floor($stamp / 604800 - $Y * ((365 + $SWITCH / $_CONFIG['one_day']) / 7) - ($M / 12 * (365 + $SWITCH / $_CONFIG['one_day']) / 7))); + $W = abs(floor($timestamp / 604800 - $Y * ((365 + $SWITCH / $_CONFIG['one_day']) / 7) - ($M / 12 * (365 + $SWITCH / $_CONFIG['one_day']) / 7))); + //* DEBUG: */ print("W={$W}\n"); // Next days... - $D = abs(floor($stamp / 86400 - $Y * (365 + $SWITCH / $_CONFIG['one_day']) - ($M / 12 * (365 + $SWITCH / $_CONFIG['one_day'])) - $W * 7)); + $D = abs(floor($timestamp / 86400 - $Y * (365 + $SWITCH / $_CONFIG['one_day']) - ($M / 12 * (365 + $SWITCH / $_CONFIG['one_day'])) - $W * 7)); + //* DEBUG: */ print("D={$D}\n"); // Next hours... - $h = abs(floor($stamp / 3600 - $Y * (365 + $SWITCH / $_CONFIG['one_day']) * 24 - ($M / 12 * (365 + $SWITCH / $_CONFIG['one_day']) * 24) - $W * 7 * 24 - $D * 24)); + $h = abs(floor($timestamp / 3600 - $Y * (365 + $SWITCH / $_CONFIG['one_day']) * 24 - ($M / 12 * (365 + $SWITCH / $_CONFIG['one_day']) * 24) - $W * 7 * 24 - $D * 24)); + //* DEBUG: */ print("h={$h}\n"); // Next minutes.. - $m = abs(floor($stamp / 60 - $Y * (365 + $SWITCH / $_CONFIG['one_day']) * 24 * 60 - ($M / 12 * (365 + $SWITCH / $_CONFIG['one_day']) * 24 * 60) - $W * 7 * 24 * 60 - $D * 24 * 60 - $h * 60)); + $m = abs(floor($timestamp / 60 - $Y * (365 + $SWITCH / $_CONFIG['one_day']) * 24 * 60 - ($M / 12 * (365 + $SWITCH / $_CONFIG['one_day']) * 24 * 60) - $W * 7 * 24 * 60 - $D * 24 * 60 - $h * 60)); + //* DEBUG: */ print("m={$m}\n"); // And at last seconds... - $s = abs(floor($stamp - $Y * (365 + $SWITCH / $_CONFIG['one_day']) * 24 * 3600 - ($M / 12 * (365 + $SWITCH / $_CONFIG['one_day']) * 24 * 3600) - $W * 7 * 24 * 3600 - $D * 24 * 3600 - $h * 3600 - $m * 60)); + $s = abs(floor($timestamp - $Y * (365 + $SWITCH / $_CONFIG['one_day']) * 24 * 3600 - ($M / 12 * (365 + $SWITCH / $_CONFIG['one_day']) * 24 * 3600) - $W * 7 * 24 * 3600 - $D * 24 * 3600 - $h * 3600 - $m * 60)); + //* DEBUG: */ print("s={$s}\n"); // Is seconds zero and time is < 60 seconds? - if (($s == 0) && ($stamp < 60)) { + if (($s == 0) && ($timestamp < 60)) { // Fix seconds $s = round($timestamp); } // END - if @@ -1511,7 +1534,7 @@ function CREATE_TIME_SELECTIONS($timestamp, $prefix="", $display="", $align="cen if (ereg("s", $display) || (empty($display))) { // Generate second selection $OUT .= " \n"; - for ($idx = 0; $idx <= 45; $idx += 15) { + for ($idx = 0; $idx <= 59; $idx++) { $OUT .= " \n"; @@ -1610,7 +1633,7 @@ function SEND_ADMIN_EMAILS_PRO($subj, $template, $content, $UID) { SQL_FREERESULT($result); } // -function CREATE_FANCY_TIME($stamp) { +function CREATE_FANCY_TIME ($stamp) { // Get data array with years/months/weeks/days/... $data = CREATE_TIME_SELECTIONS($stamp, "", "", "", true); $ret = ""; @@ -2238,7 +2261,7 @@ function mxchange_die ($msg) { // Display parsing time and number of SQL queries in footer function DISPLAY_PARSING_TIME_FOOTER() { - global $startTime, $_CONFIG; + global $_CONFIG; $endTime = microtime(true); // Is the timer started? @@ -2301,23 +2324,23 @@ function set_session ($var, $value) { // Check wether a boolean constant is set // Taken from user comments in PHP documentation for function constant() function isBooleanConstantAndTrue($constName) { // : Boolean - global $constCache; + global $cacheArray; // Failed by default $res = false; // In cache? - if (isset($constCache[$constName])) { + if (isset($cacheArray['const'][$constName])) { // Use cache //* DEBUG: */ print __FUNCTION__."(".__LINE__."): ".$constName."-CACHE!\n"; - $res = $constCache[$constName]; + $res = $cacheArray['const'][$constName]; } else { // Check constant //* DEBUG: */ print __FUNCTION__."(".__LINE__."): ".$constName."-RESOLVE!\n"; if (defined($constName)) $res = (constant($constName) === true); // Set cache - $constCache[$constName] = $res; + $cacheArray['const'][$constName] = $res; } //* DEBUG: */ var_dump($res); @@ -2326,12 +2349,12 @@ function isBooleanConstantAndTrue($constName) { // : Boolean } // Check wether a session variable is set -function isSessionVariableSet($var) { +function isSessionVariableSet ($var) { //* DEBUG: */ print __FUNCTION__."(".__LINE__."):var={$var}\n"; return (isset($_SESSION[$var])); } // Returns wether the value of the session variable or NULL if not set -function get_session($var) { +function get_session ($var) { global $cacheArray; // Default is not found! ;-) @@ -2340,9 +2363,11 @@ function get_session($var) { // Is the variable there or cached values? if (isset($cacheArray['session'][$var])) { // Get cached value (skips a lot SQL_ESCAPE() calles! + //* DEBUG: */ print __FUNCTION__."(".__LINE__."): ".$var."-CACHE!\n"; $value = $cacheArray['session'][$var]; } elseif (isSessionVariableSet($var)) { // Then get it secured! + //* DEBUG: */ print __FUNCTION__."(".__LINE__."): ".$var."-RESOLVE!\n"; $value = SQL_ESCAPE($_SESSION[$var]); // Cache the value @@ -2519,31 +2544,31 @@ function FILE_READABLE($fqfn) { // Converts timestamp selections into a timestamp function CONVERT_SELECTIONS_TO_TIMESTAMP(&$POST, &$DATA, &$id, &$skip) { // Init test variable - $TEST2 = ""; + $test2 = ""; // Get last three chars - $TEST = substr($id, -3); + $test = substr($id, -3); // Improved way of checking! :-) - if (in_array($TEST, array("_ye", "_mo", "_we", "_da", "_ho", "_mi", "_se"))) { + if (in_array($test, array("_ye", "_mo", "_we", "_da", "_ho", "_mi", "_se"))) { // Found a multi-selection for timings? - $TEST = substr($id, 0, -3); - if ((isset($POST[$TEST."_ye"])) && (isset($POST[$TEST."_mo"])) && (isset($POST[$TEST."_we"])) && (isset($POST[$TEST."_da"])) && (isset($POST[$TEST."_ho"])) && (isset($POST[$TEST."_mi"])) && (isset($POST[$TEST."_se"])) && ($TEST != $TEST2)) { + $test = substr($id, 0, -3); + if ((isset($POST[$test."_ye"])) && (isset($POST[$test."_mo"])) && (isset($POST[$test."_we"])) && (isset($POST[$test."_da"])) && (isset($POST[$test."_ho"])) && (isset($POST[$test."_mi"])) && (isset($POST[$test."_se"])) && ($test != $test2)) { // Generate timestamp - $POST[$TEST] = CREATE_TIMESTAMP_FROM_SELECTIONS($TEST, $POST); - $DATA[] = "$TEST='".$POST[$TEST]."'"; + $POST[$test] = CREATE_TIMESTAMP_FROM_SELECTIONS($test, $POST); + $DATA[] = sprintf("%s='%s'", $test, $POST[$test]); // Remove data from array foreach (array("ye", "mo", "we", "da", "ho", "mi", "se") as $rem) { - unset($POST[$TEST."_".$rem]); + unset($POST[$test."_".$rem]); } // END - foreach // Skip adding - unset($id); $skip = true; $TEST2 = $TEST; + unset($id); $skip = true; $test2 = $test; } // END - if } else { // Process this entry - $skip = false; $TEST2 = ""; + $skip = false; $test2 = ""; } } // Reverts the german decimal comma into Computer decimal dot @@ -2605,9 +2630,9 @@ function REBUILD_CACHE ($cache, $inc="") { // Shall I remove the cache file? if ((EXT_IS_ACTIVE("cache")) && (is_object($cacheInstance))) { // Rebuild cache - if ($cacheInstance->cache_file($cache, true)) { + if ($cacheInstance->loadCacheFile($cache)) { // Destroy it - $cacheInstance->cache_destroy(); + $cacheInstance->destroyCacheFile(); } // END - if // Include file given? @@ -2807,7 +2832,7 @@ function DESTROY_ADMIN_SESSION () { // Checks if a given apache module is loaded function IF_APACHE_MODULE_LOADED ($apacheModule) { // Check it and return result - return (in_array($apacheModule, apache_get_modules())); + return (((function_exists('apache_get_modules')) && (in_array($apacheModule, apache_get_modules()))) || (!function_exists('apache_get_modules'))); } //////////////////////////////////////////////////
"); + debug_print_backtrace(); + die("