X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Ffunctions.php;h=640ff9df0f317ec2310b2cfdb3b429cf48b0cd89;hp=a1495ccf0d2e789300700edd62d3143451d74774;hb=c47293f5523a4a9e8791f0922b138fa6865aefaf;hpb=f97f57dea3e736e564d7316d720d6a8820a75713 diff --git a/inc/functions.php b/inc/functions.php index a1495ccf0d..640ff9df0f 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -33,7 +33,7 @@ // Some security stuff... if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) { - $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php"; + $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4)."/security.php"; require($INC); } @@ -71,18 +71,15 @@ function OPEN_TABLE($PERCENT = "", $CLASS = "", $ALIGN="left", $VALIGN="", $td_o // Vertical align is given if (!empty($VALIGN)) $OUT .= " valign=\"".$VALIGN."\""; - $OUT .= "> - - "; - OUTPUT_HTML($OUT); + OUTPUT_HTML($OUT); } // Close a table (you may want to add some footer stuff here) function CLOSE_TABLE($ADD="") { - OUTPUT_HTML(" -"); + OUTPUT_HTML(" \n"); if (!empty($ADD)) OUTPUT_HTML($ADD); OUTPUT_HTML(""); } @@ -140,9 +137,17 @@ function OUTPUT_HTML($HTML, $NEW_LINE = true) { } // Compile and run finished rendered HTML code - while (strpos($OUTPUT, "{!") > 0) { - $eval = "\$OUTPUT = \"" . COMPILE_CODE(addslashes($OUTPUT)) . "\";"; + while (strpos($OUTPUT, '{!') > 0) { + // Prepare the content and eval() it... + $newContent = ""; + $eval = "\$newContent = \"".COMPILE_CODE(addslashes($OUTPUT))."\";"; @eval($eval); + + if (empty($newContent)) { + // Something went wrong! + die("Evaluation error:
".htmlentities($eval)."
"); + } + $OUTPUT = $newContent; } // Output code here, DO NOT REMOVE! ;-) @@ -154,9 +159,9 @@ function OUTPUT_HTML($HTML, $NEW_LINE = true) { } // Compile and run finished rendered HTML code - while (strpos($OUTPUT, "{!") > 0) { - $eval = "\$OUTPUT = \"" . COMPILE_CODE(addslashes($OUTPUT)) . "\";"; - @eval($eval); + while (strpos($OUTPUT, '{!') > 0) { + $eval = "\$OUTPUT = \"".COMPILE_CODE(addslashes($OUTPUT))."\";"; + eval($eval); } // Output code here, DO NOT REMOVE! ;-) @@ -166,21 +171,18 @@ function OUTPUT_HTML($HTML, $NEW_LINE = true) { // Output the raw HTML code function OUTPUT_RAW ($HTML) { - if ((isBooleanConstantAndTrue('mxchange_installed')) && (basename($_SERVER['PHP_SELF']) != "install.php")) { - // Not in install-mode so strip slashes away - echo stripslashes($HTML); - } else { - // Output directly in install-mode - echo $HTML; - } + // Output stripped HTML code to avoid broken JavaScript code, etc. + echo stripslashes($HTML); - // Flush the output - flush(); + // Flush the output if only _OB_CACHING is not "on" + if (_OB_CACHING != "on") { + // Flush it + flush(); + } } // Add a fatal error message to the queue array -function ADD_FATAL ($message, $extra="") -{ +function ADD_FATAL ($message, $extra="") { global $FATAL; if (empty($extra)) { // Regular text message to add to $FATAL @@ -207,9 +209,10 @@ function LOAD_TEMPLATE($template, $return=false, $content="") { if (empty($GLOBALS['refid'])) $GLOBALS['refid'] = 0; $REFID = $GLOBALS['refid']; + // DEPRECATED!!! if ($template == "member_support_form") { // Support request of a member - $result = SQL_QUERY_ESC("SELECT sex, surname, family FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1", + $result = SQL_QUERY_ESC("SELECT sex, surname, family FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__); list($sex, $surname, $family) = SQL_FETCHROW($result); SQL_FREERESULT($result); @@ -220,7 +223,7 @@ function LOAD_TEMPLATE($template, $return=false, $content="") { $date_time = MAKE_DATETIME(time(), "1"); // Base directory - $BASE = PATH."templates/".GET_LANGUAGE()."/html/"; + $BASE = sprintf("%stemplates/%s/html/", PATH, GET_LANGUAGE()); $MODE = ""; // Check for admin/guest/member templates @@ -284,7 +287,7 @@ function LOAD_TEMPLATE($template, $return=false, $content="") { $tmpl_file = implode("", file($file)); // Replace ' to our own chars to preventing them being quoted - while (strpos($tmpl_file, "\'") !== false) { $tmpl_file = str_replace("\'", "{QUOT}", $tmpl_file); } + while (strpos($tmpl_file, "\'") !== false) { $tmpl_file = str_replace("\'", '{QUOT}', $tmpl_file); } // Do we have to compile the code? if ((strpos($tmpl_file, "\$") !== false) || (strpos($tmpl_file, '{--') !== false) || (strpos($tmpl_file, '--}') > 0)) { @@ -340,7 +343,7 @@ function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML='N', $FROM="") { ADD_MESSAGE_TO_BOX($TO, $SUBJECT, $MSG, $HTML); return; } else { - $result_email = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d 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__); list($TO) = SQL_FETCHROW($result_email); SQL_FREERESULT($result_email); } @@ -366,7 +369,7 @@ function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML='N', $FROM="") { } // Fix HTML parameter (default is no!) - if (empty($HTML)) $HTML = 'N'; + if (empty($HTML)) $HTML = "N"; if (isBooleanConstantAndTrue('DEBUG_MODE')) { // In debug mode we want to display the mail instead of sending it away so we can debug this part echo "
@@ -375,7 +378,7 @@ To      : ".$TO."
 Subject : ".$SUBJECT."
 Message : ".$MSG."
 
\n"; - } elseif (($HTML == 'Y') && (EXT_IS_ACTIVE("html_mail", true))) { + } elseif (($HTML == "Y") && (EXT_IS_ACTIVE("html_mail", true))) { // Send mail as HTML away SEND_HTML_EMAIL($TO, $SUBJECT, $MSG, $FROM); } elseif (!empty($TO)) { @@ -384,7 +387,7 @@ Message : ".$MSG." // Send Mail away SEND_RAW_EMAIL($TO, COMPILE_CODE($SUBJECT), COMPILE_CODE($MSG), $FROM); - } elseif ($HTML == 'N') { + } elseif ($HTML == "N") { // Problem found! SEND_RAW_EMAIL(WEBMASTER, COMPILE_CODE($SUBJECT), COMPILE_CODE($MSG), $FROM); } @@ -408,7 +411,7 @@ function SEND_RAW_EMAIL ($to, $subject, $msg, $from) { // get new instance $mail = new PHPMailer(); - $mail->PluginDir = PATH."inc/phpmailer/"; + $mail->PluginDir = sprintf("%sinc/phpmailer/", PATH); $mail->IsSMTP(); $mail->SMTPAuth = true; @@ -416,7 +419,11 @@ function SEND_RAW_EMAIL ($to, $subject, $msg, $from) { $mail->Port = 25; $mail->Username = SMTP_USER; $mail->Password = SMTP_PASSWORD; - $mail->From = $from; + if (empty($from)) { + $mail->From = WEBMASTER; + } else { + $mail->From = $from; + } $mail->FromName = MAIN_TITLE; $mail->Subject = $subject; if ((EXT_IS_ACTIVE("html_mail")) && (strip_tags($msg) != $msg)) { @@ -501,8 +508,7 @@ function MAKE_DATETIME($time, $mode="0") } // Translates the american decimal dot into a german comma -function TRANSLATE_COMMA($dotted, $cut=true) -{ +function TRANSLATE_COMMA($dotted, $cut=true) { global $_CONFIG; // Default is 3 you can change this in admin area "Misc -> Misc Options" if (empty($_CONFIG['max_comma'])) $_CONFIG['max_comma'] = "3"; @@ -559,7 +565,7 @@ function TRANSLATE_COMMA($dotted, $cut=true) // function DEREFERER($URL) { - $URL = URL."/modules.php?module=loader&url=".urlencode(base64_encode(COMPILE_CODE($URL))); + $URL = URL."/modules.php?module=loader&url=".urlencode(base64_encode(gzcompress(COMPILE_CODE($URL)))); return $URL; } @@ -575,8 +581,7 @@ function TRANSLATE_SEX($sex) { return $ret; } // -function GET_POOL_TYPE($PT) -{ +function GET_POOL_TYPE($PT) { switch ($PT) { case "TEMP" : $ret = POOL_TEMP; break; @@ -590,33 +595,30 @@ function GET_POOL_TYPE($PT) return $ret; } // -function FRAMETESTER($URL) -{ - global $_SERVER; - $URL = URL."/modules.php?module=frametester&url=".urlencode(base64_encode(COMPILE_CODE($URL))); - return $URL; +function FRAMETESTER($URL) { + // Prepare frametester URL + $frametesterUrl = sprintf("%s/modules.php?module=frametester&url=%s", + URL, + urlencode(base64_encode(gzcompress(COMPILE_CODE($URL)))) + ); + return $frametesterUrl; } // -function SELECTION_COUNT($array) -{ +function SELECTION_COUNT($array) { $ret = "0"; - if (is_array($array)) - { - foreach ($array as $key=>$sel) - { + if (is_array($array)) { + foreach ($array as $key => $sel) { if (!empty($sel)) $ret++; } } return $ret; } // -function IMG_CODE ($code, $type, $DATA, $uid) -{ +function IMG_CODE ($code, $type, $DATA, $uid) { return "\"Code\""; } // -function TRANSLATE_STATUS($status) -{ +function TRANSLATE_STATUS($status) { switch ($status) { case "UNCONFIRMED": @@ -682,7 +684,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") { // Keept for backward-compatiblity (please replace these variables against our new {--CONST--} syntax!) $MAIN_TITLE = MAIN_TITLE; $URL = URL; $WEBMASTER = WEBMASTER; - $surname = ""; $family = ""; $nick = ""; $sex = 'N'; + $surname = ""; $family = ""; $nick = ""; $sex = "N"; // Prepare IP number and User Agent $REMOTE_ADDR = getenv('REMOTE_ADDR'); @@ -709,6 +711,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") { $EXPIRATION = round($_CONFIG['auto_purge']/60/60/24)." "._DAYS; } + // DEPRECATED switch! switch ($template) { case "bonus-mail": // Load data for the bonus mail @@ -790,7 +793,11 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") { break; case "add-points": - $points = bigintval($_POST['points']); + if (isset($_POST['points'])) { + $points = bigintval($_POST['points']); + } else { + $points = __POINTS_VALUE; + } break; case "guest_request_confirm": @@ -802,13 +809,13 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") { if ($UID > 0) { if (EXT_IS_ACTIVE("nickname")) { // Load nickname - $result = SQL_QUERY_ESC("SELECT surname, family, sex, email, nickname FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1", + $result = SQL_QUERY_ESC("SELECT surname, family, sex, email, nickname FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1", array(bigintval($UID)), __FILE__, __LINE__); list($surname, $family, $sex, $email, $nick) = SQL_FETCHROW($result); SQL_FREERESULT($result); } else { // Load normal data - $result = SQL_QUERY_ESC("SELECT surname, family, sex, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1", + $result = SQL_QUERY_ESC("SELECT surname, family, sex, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1", array(bigintval($UID)), __FILE__, __LINE__); list($surname, $family, $sex, $email) = SQL_FETCHROW($result); SQL_FREERESULT($result); @@ -816,7 +823,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") { } } else { // Neutral sex and email address is default - $sex = 'N'; + $sex = "N"; $email = WEBMASTER; } @@ -827,7 +834,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") { $DATA['email'] = $email; // Base directory - $BASE = PATH."templates/".GET_LANGUAGE()."/emails/"; + $BASE = sprintf("%stemplates/%s/emails/", PATH, GET_LANGUAGE()); // Check for admin/guest/member templates if (strpos($template, "admin_") > -1) { @@ -855,11 +862,10 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") { if ((!@file_exists($file)) || (!is_readable($file))) { // Reset to default template $file = $BASE.$template.".tpl"; - } + } // END - if // Now does the final template exists? - if ((@file_exists($file)) && (is_readable($file))) - { + if ((@file_exists($file)) && (is_readable($file))) { // The local file does exists so we load it. :) $tmpl_file = @implode("", @file($file)); $tmpl_file = addslashes($tmpl_file); @@ -873,9 +879,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") { // Replace HTML confirm chars $content = html_entity_decode($content); - } - elseif (!empty($template)) - { + } elseif (!empty($template)) { // Template file not found! $content = TEMPLATE_404.": ".$template."
".TEMPLATE_CONTENT." @@ -886,17 +890,16 @@ function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") { // Debug mode not active? Then remove the HTML tags if (!DEBUG_MODE) $content = strip_tags($content); - } - else - { + } else { // No template name supplied! $content = NO_TEMPLATE_SUPPLIED; } + + // Return compiled content return COMPILE_CODE($content); } // -function MAKE_TIME($H, $M, $S, $stamp) -{ +function MAKE_TIME($H, $M, $S, $stamp) { // Extract day, month and year from given timestamp $DAY = date("d", $stamp); $MONTH = date("m", $stamp); @@ -918,6 +921,12 @@ function LOAD_URL($URL, $addUrlData=true) { // Compile out URI codes $URL = COMPILE_CODE($URL); + // Get output buffer + $OUTPUT = ob_get_contents(); + + // Clear it + ob_end_clean(); + // Add some data to URL if cookies are not accepted if (((!defined('__COOKIES')) || (!__COOKIES)) && ($addUrlData)) $URL = ADD_URL_DATA($URL); @@ -930,11 +939,16 @@ function LOAD_URL($URL, $addUrlData=true) { OUTPUT_HTML("".$URL.""); } elseif (!headers_sent()) { // Load URL when headers are not sent + /* + print("
");
+		debug_print_backtrace();
+		die("
URL={$URL}"); + */ @header ("Location: ".str_replace("&", "&", $URL)); } else { // Output error message include(PATH."inc/header.php"); - OUTPUT_HTML(LOAD_URL_ERROR_1.$URL.LOAD_URL_ERROR_2); + LOAD_TEMPLATE("redirect_url", false, str_replace("&", "&", $URL)); include(PATH."inc/footer.php"); } exit(); @@ -951,11 +965,11 @@ function COMPILE_CODE($code, $simple = false, $constants = true, $full = true) { if ($constants) { // BEFORE 0.2.1 : Language and data constants // WITH 0.2.1+ : Only language constants - $code = str_replace("{--", '".', str_replace("--}", '."', $code)); + $code = str_replace('{--', '".', str_replace('--}', '."', $code)); // BEFORE 0.2.1 : Not used // WITH 0.2.1+ : Data constants - $code = str_replace("{!", '".', str_replace("!}", '."', $code)); + $code = str_replace('{!', '".', str_replace("!}", '."', $code)); } // Compile QUOT and other non-HTML codes @@ -965,7 +979,7 @@ function COMPILE_CODE($code, $simple = false, $constants = true, $full = true) { } // But shall I keep simple quotes for later use? - if ($simple) $code = str_replace("\'", "{QUOT}", $code); + if ($simple) $code = str_replace("\'", '{QUOT}', $code); // Find $content[bla][blub] entries @preg_match_all('/\$(content|DATA)((\[([a-zA-Z0-9-_]+)\])*)/', $code, $matches); @@ -1150,10 +1164,10 @@ function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0") case "yn": $OUT .= "