X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Ffunctions.php;h=2052e4af838925ea3679260c79f57d2d0d5e4329;hp=3a9033aedb6af0e7e6916cf210a12de948311ecd;hb=263a089d8a499e0e26d0af9e7aa7639f88b8ca60;hpb=fb997d3ca99f1ca578be196e319d0b92ff2e5390 diff --git a/inc/functions.php b/inc/functions.php index 3a9033aedb..2052e4af83 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -1,7 +1,7 @@ \n" . $GLOBALS['tpl_content'] . "\n"; + $ret = '\n" . $GLOBALS['tpl_content'] . '\n"; // Prepare eval() command $eval = '$ret = "' . compileCode(escapeQuotes($ret)) . '";'; } elseif (substr($template, 0, 3) == 'js_') { // JavaScripts don't like entities and timings - $eval = '$ret = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['tpl_content'])) . '");'; + $eval = '$ret = decodeEntities("' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['tpl_content'])) . '");'; } else { - // Prepare eval() command - $eval = '$ret = "' . compileCode(escapeQuotes($GLOBALS['tpl_content'])) . '";'; + // Prepare eval() command, other output doesn't like entities, maybe + $eval = '$ret = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['tpl_content'])) . '");'; } } else { // Add surrounding HTML comments to help finding bugs faster - $ret = "\n" . $GLOBALS['tpl_content'] . "\n"; + $ret = '\n" . $GLOBALS['tpl_content'] . '\n"; $eval = '$ret = "' . escapeQuotes($ret) . '";'; } // END - if @@ -602,7 +602,7 @@ Message : ' . $message . ' } } -// Check if legacy or PHPMailer command +// Check to use wether legacy mail() command or PHPMailer class // @TODO Rewrite this to an extension 'smtp' // @private function checkPhpMailerUsage() { @@ -611,6 +611,12 @@ function checkPhpMailerUsage() { // Send out a raw email with PHPMailer class or legacy mail() command function sendRawEmail ($toEmail, $subject, $message, $from) { + // Just compile all again, to put out all configs, etc. + eval('$toEmail = decodeEntities("' . compileRawCode(escapeQuotes($toEmail)) . '");'); + eval('$subject = decodeEntities("' . compileRawCode(escapeQuotes($subject)) . '");'); + eval('$message = decodeEntities("' . compileRawCode(escapeQuotes($message)) . '");'); + eval('$from = decodeEntities("' . compileRawCode(escapeQuotes($from)) . '");'); + // Shall we use PHPMailer class or legacy mode? if (checkPhpMailerUsage()) { // Use PHPMailer class with SMTP enabled @@ -1076,13 +1082,13 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true // Replace it in the code //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):key={$key},match={$match}
"); $newMatch = str_replace('[', "['", str_replace(']', "']", $match)); - $code = str_replace($match, "\"." . $newMatch.".\"", $code); + $code = str_replace($match, '".' . $newMatch . '."', $code); $matchesFound[$key . '_' . $matches[4][$key]] = 1; $matchesFound[$match] = 1; } elseif (!isset($matchesFound[$match])) { // Not yet replaced! //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):match={$match}
"); - $code = str_replace($match, "\"." . $match.".\"", $code); + $code = str_replace($match, '".' . $match . '."', $code); $matchesFound[$match] = 1; } } // END - foreach @@ -1335,7 +1341,7 @@ function bigintval ($num, $castValue = true) { function generateImageOrCode ($img_code, $headerSent = true) { // Is the code size oversized or shouldn't we display it? if ((strlen($img_code) > 6) || (empty($img_code)) || (getConfig('code_length') == '0')) { - // Stop execution of function here because of over-sized code length + // Stop2 execution of function here because of over-sized code length debug_report_bug('img_code ' . $img_code .' has invalid length. img_code()=' . strlen($img_code) . ' code_length=' . getConfig('code_length')); } elseif ($headerSent === false) { // Return an HTML code here @@ -1448,35 +1454,35 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = } else { // Generate table $OUT = "
\n"; - $OUT .= "\n"; + $OUT .= "
\n"; $OUT .= "\n"; if (ereg('Y', $display) || (empty($display))) { - $OUT .= " \n"; + $OUT .= " \n"; } if (ereg('M', $display) || (empty($display))) { - $OUT .= " \n"; + $OUT .= " \n"; } - if (ereg("W", $display) || (empty($display))) { - $OUT .= " \n"; + if (ereg('W', $display) || (empty($display))) { + $OUT .= " \n"; } - if (ereg("D", $display) || (empty($display))) { - $OUT .= " \n"; + if (ereg('D', $display) || (empty($display))) { + $OUT .= " \n"; } - if (ereg("h", $display) || (empty($display))) { - $OUT .= " \n"; + if (ereg('h', $display) || (empty($display))) { + $OUT .= " \n"; } if (ereg('m', $display) || (empty($display))) { - $OUT .= " \n"; + $OUT .= " \n"; } - if (ereg("s", $display) || (empty($display))) { - $OUT .= " \n"; + if (ereg('s', $display) || (empty($display))) { + $OUT .= " \n"; } $OUT .= "\n"; @@ -1492,7 +1498,7 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = } $OUT .= " \n"; } else { - $OUT .= "\n"; + $OUT .= "\n"; } if (ereg('M', $display) || (empty($display))) { @@ -1506,10 +1512,10 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = } $OUT .= " \n"; } else { - $OUT .= "\n"; + $OUT .= "\n"; } - if (ereg("W", $display) || (empty($display))) { + if (ereg('W', $display) || (empty($display))) { // Generate week selection $OUT .= " \n"; } else { - $OUT .= "\n"; + $OUT .= "\n"; } - if (ereg("D", $display) || (empty($display))) { + if (ereg('D', $display) || (empty($display))) { // Generate day selection $OUT .= " \n"; } else { - $OUT .= "\n"; + $OUT .= "\n"; } - if (ereg("h", $display) || (empty($display))) { + if (ereg('h', $display) || (empty($display))) { // Generate hour selection $OUT .= " \n"; } else { - $OUT .= "\n"; + $OUT .= "\n"; } if (ereg('m', $display) || (empty($display))) { @@ -1558,10 +1564,10 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = } $OUT .= " \n"; } else { - $OUT .= "\n"; + $OUT .= "\n"; } - if (ereg("s", $display) || (empty($display))) { + if (ereg('s', $display) || (empty($display))) { // Generate second selection $OUT .= " \n"; } else { - $OUT .= "\n"; + $OUT .= "\n"; } $OUT .= "\n"; $OUT .= "
{--_YEARS--}
{--_YEARS--}
{--_MONTHS--}
{--_MONTHS--}
{--_WEEKS--}
{--_WEEKS--}
{--_DAYS--}
{--_DAYS--}
{--_HOURS--}
{--_HOURS--}
{--_MINUTES--}
{--_MINUTES--}
{--_SECONDS--}
{--_SECONDS--}
\n"; @@ -2022,7 +2028,7 @@ function generateHash ($plainText, $salt = '') { // Do we miss an arry element here? if (!isConfigEntrySet('file_hash')) { - // Stop here + // Stop2 here debug_report_bug('Missing file_hash in ' . __FUNCTION__ . '.'); } // END - if @@ -2360,7 +2366,7 @@ function getThemeId ($name) { // Count up incrementStatsEntry('cache_hits'); - } elseif (getExtensionVersion('cache') != '0.1.8') { + } elseif (isExtensionInstalledAndNewer('cache', '0.1.8')) { // Check if current theme is already imported or not $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_themes` WHERE `theme_path`='%s' LIMIT 1", array($name), __FUNCTION__, __LINE__); @@ -3186,7 +3192,7 @@ function determineReferalId () { } // Is the record valid? - if (($found === false) || (!isUserDataValid())) { + if ((($found === false) || (!isUserDataValid())) && (isConfigEntrySet('def_refid'))) { // No, then reset referal id $GLOBALS['refid'] = getConfig('def_refid'); } // END - if @@ -3221,7 +3227,7 @@ function shutdown () { addFatalMessage(__FILE__, __LINE__, getMessage('NO_DB_LINK_SHUTDOWN')); } - // Stop executing here + // Stop2 executing here exit; } @@ -3650,7 +3656,7 @@ function isTemplateCached ($template) { // Flushes non-flushed template cache to disk function flushTemplateCache ($template, $eval) { // Is this cache flushed? - if ((!isTemplateCached($template)) && ($eval != '404')) { + if ((isDebuggingTemplateCache() === false) && (isTemplateCached($template) === false) && ($eval != '404')) { // Generate FQFN $FQFN = sprintf("%s_compiled/templates/%s.tpl.cache", getConfig('CACHE_PATH'), $template); @@ -3665,7 +3671,7 @@ function flushTemplateCache ($template, $eval) { // Reads a template cache function readTemplateCache ($template) { // Check it again - if (isTemplateCached($template)) { + if ((isDebuggingTemplateCache() === false) && (isTemplateCached($template))) { // Generate FQFN $FQFN = sprintf("%s_compiled/templates/%s.tpl.cache", getConfig('CACHE_PATH'), $template); @@ -3692,6 +3698,15 @@ function escapeQuotes ($str, $single = false) { return $str; } +// Escapes the JavaScript code, prevents \r and \n becoming char 10/13 +function escapeJavaScriptQuotes ($str) { + // Replace all double-quotes and secure back-ticks + $str = str_replace('"', '\"', str_replace("\\", '{BACK}', $str)); + + // Return it + return $str; +} + ////////////////////////////////////////////////// // AUTOMATICALLY RE-GENERATED MISSING FUNCTIONS // ////////////////////////////////////////////////// @@ -3707,7 +3722,7 @@ if (!function_exists('html_entity_decode')) { if (!function_exists('http_build_query')) { // Taken from documentation on www.php.net, credits to Marco K. (Germany) - function http_build_query($data, $prefix='', $sep='', $key='') { + function http_build_query($data, $prefix = '', $sep = '', $key = '') { $ret = array(); foreach ((array)$data as $k => $v) { if (is_int($k) && $prefix != null) { @@ -3727,7 +3742,7 @@ if (!function_exists('http_build_query')) { return implode($sep, $ret); } -}// // END - if +} // END - if // [EOF] ?>