X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Ffunctions.php;h=c1293681cef302da6f78545014bd5c7152985f6e;hp=c727a3bf64ffe0cd73f0e22fb022a5db79922761;hb=9b8d0c1de007c1149af813c07773c3536c71ddd5;hpb=258bb8c82f21617f7f90bff8023602a11b986f7e
diff --git a/inc/functions.php b/inc/functions.php
index c727a3bf64..c1293681ce 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -1,7 +1,7 @@
{--FATAL_ERROR--}: {--LANG_NO_RENDER_DIRECT--}');
break;
} // END - switch
- } elseif ((getPhpCaching() == 'on') && (isset($GLOBALS['footer_sent'])) && ($GLOBALS['footer_sent'] == 1)) {
- // Headers already sent?
- if (headers_sent()) {
- // Log this error
- logDebugMessage(__FUNCTION__, __LINE__, 'Headers already sent! We need debug backtrace here.');
-
- // Trigger an user error
- debug_report_bug('Headers are already sent!');
- } // END - if
-
+ } elseif ((getPhpCaching() == 'on') && ((!isset($GLOBALS['header'])) || (count($GLOBALS['header']) == 0))) {
// Output cached HTML code
$GLOBALS['output'] = ob_get_contents();
@@ -108,12 +100,12 @@ function outputHtml ($htmlCode, $newLine = true) {
$GLOBALS['output'] = rewriteLinksInCode($GLOBALS['output']);
} // END - if
- // Compile and run finished rendered HTML code
- compileFinalOutput();
-
// Send all HTTP headers
sendHttpHeaders();
+ // Compile and run finished rendered HTML code
+ compileFinalOutput();
+
// Output code here, DO NOT REMOVE! ;-)
outputRawCode($GLOBALS['output']);
} elseif ((getConfig('OUTPUT_MODE') == 'render') && (!empty($GLOBALS['output']))) {
@@ -122,14 +114,17 @@ function outputHtml ($htmlCode, $newLine = true) {
$GLOBALS['output'] = rewriteLinksInCode($GLOBALS['output']);
} // END - if
- // Compile and run finished rendered HTML code
- compileFinalOutput();
-
// Send all HTTP headers
sendHttpHeaders();
+ // Compile and run finished rendered HTML code
+ compileFinalOutput();
+
// Output code here, DO NOT REMOVE! ;-)
outputRawCode($GLOBALS['output']);
+ } else {
+ // And flush all headers
+ flushHeaders();
}
}
@@ -142,7 +137,7 @@ function sendHttpHeaders () {
sendHeader('HTTP/1.1 200');
// General headers for no caching
- sendHeader('Expired: ' . $now); // RFC2616 - Section 14.21
+ sendHeader('Expires: ' . $now); // RFC2616 - Section 14.21
sendHeader('Last-Modified: ' . $now);
sendHeader('Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
sendHeader('Pragma: no-cache'); // HTTP/1.0
@@ -156,6 +151,9 @@ function compileFinalOutput () {
// Init counter
$cnt = '0';
+ // Add page header and footer
+ addPageHeaderFooter();
+
// Compile all out
while (((strpos($GLOBALS['output'], '{--') > 0) || (strpos($GLOBALS['output'], '{!') > 0) || (strpos($GLOBALS['output'], '{?') > 0)) && ($cnt < 3)) {
// Init common variables
@@ -169,7 +167,7 @@ function compileFinalOutput () {
// Was that eval okay?
if (empty($newContent)) {
// Something went wrong!
- debug_report_bug('Evaluation error:
' . linenumberCode($eval) . '
');
+ debug_report_bug('Evaluation error:' . linenumberCode($eval) . '
', false);
} // END - if
$GLOBALS['output'] = $newContent;
@@ -177,8 +175,26 @@ function compileFinalOutput () {
$cnt++;
} // END - while
+ // Compress it?
+ if (!empty($_SERVER['HTTP_ACCEPT_ENCODING']) && (strpos('gzip', $_SERVER['HTTP_ACCEPT_ENCODING']) !== null)) {
+ // Compress it for HTTP gzip
+ $GLOBALS['output'] = gzencode($GLOBALS['output'], 9, true);
+
+ // Add header
+ sendHeader('Content-Encoding: gzip');
+ } elseif (!empty($_SERVER['HTTP_ACCEPT_ENCODING']) && (strpos('deflate', $_SERVER['HTTP_ACCEPT_ENCODING']) !== null)) {
+ // Compress it for HTTP deflate
+ $GLOBALS['output'] = gzcompress($GLOBALS['output'], 9);
+
+ // Add header
+ sendHeader('Content-Encoding: deflate');
+ }
+
// Add final length
sendHeader('Content-Length: ' . strlen($GLOBALS['output']));
+
+ // Flush all headers
+ flushHeaders();
}
// Output the raw HTML code
@@ -217,7 +233,6 @@ function addFatalMessage ($F, $L, $message, $extra = '') {
$GLOBALS['fatal_messages'][] = $message;
// Log fatal messages away
- debug_report_bug($message);
logDebugMessage($F, $L, 'Fatal error message: ' . $message);
}
@@ -284,7 +299,7 @@ function loadTemplate ($template, $return = false, $content = array()) {
// Do we have to compile the code?
$ret = '';
- if ((strpos($GLOBALS['tpl_content'], '$') !== false) || (strpos($GLOBALS['tpl_content'], '{--') !== false) || (strpos($GLOBALS['tpl_content'], '{!') !== false) || (strpos($GLOBALS['tpl_content'], '{?') !== false)) {
+ if ((strpos($GLOBALS['tpl_content'], '$') !== false) || (strpos($GLOBALS['tpl_content'], '{--') !== false) || (strpos($GLOBALS['tpl_content'], '{!') !== false) || (strpos($GLOBALS['tpl_content'], '{?') !== false) || (strpos($GLOBALS['tpl_content'], '{%') !== false)) {
// Normal HTML output?
if (getOutputMode() == '0') {
// Add surrounding HTML comments to help finding bugs faster
@@ -302,7 +317,7 @@ function loadTemplate ($template, $return = false, $content = array()) {
} else {
// Add surrounding HTML comments to help finding bugs faster
$ret = '\n" . $GLOBALS['tpl_content'] . '\n";
- $eval = '$ret = "' . escapeQuotes($ret) . '";';
+ $eval = '$ret = "' . compileRawCode(escapeQuotes($ret)) . '";';
} // END - if
// Cache the eval() command here
@@ -312,7 +327,7 @@ function loadTemplate ($template, $return = false, $content = array()) {
eval($GLOBALS['template_eval'][$template]);
} elseif ((isAdmin()) || ((isInstalling()) && (!isInstalled()))) {
// Only admins shall see this warning or when installation mode is active
- $ret = '
{--TEMPLATE_404--}
+ $ret = '
{--TEMPLATE_404--}
(' . $template . ')
{--TEMPLATE_CONTENT--}
@@ -350,48 +365,57 @@ function detectExtraTemplatePath ($template) {
// Default is empty
$extraPath = '';
- // Check for admin/guest/member templates
- if (substr($template, 0, 6) == 'admin_') {
- // Admin template found
- $extraPath = 'admin/';
- } elseif (substr($template, 0, 6) == 'guest_') {
- // Guest template found
- $extraPath = 'guest/';
- } elseif (substr($template, 0, 7) == 'member_') {
- // Member template found
- $extraPath = 'member/';
- } elseif (substr($template, 0, 8) == 'install_') {
- // Installation template found
- $extraPath = 'install/';
- } elseif (substr($template, 0, 4) == 'ext_') {
- // Extension template found
- $extraPath = 'ext/';
- } elseif (substr($template, 0, 3) == 'la_') {
- // 'Logical-area' template found
- $extraPath = 'la/';
- } elseif (substr($template, 0, 3) == 'js_') {
- // JavaScript template found
- $extraPath = 'js/';
- } elseif (substr($template, 0, 5) == 'menu_') {
- // Menu template found
- $extraPath = 'menu/';
- } else {
- // Test for extension
- $test = substr($template, 0, strpos($template, '_'));
+ // Do we have cache?
+ if (!isset($GLOBALS['extra_path'][$template])) {
+ // Check for admin/guest/member/etc. templates
+ if (substr($template, 0, 6) == 'admin_') {
+ // Admin template found
+ $extraPath = 'admin/';
+ } elseif (substr($template, 0, 6) == 'guest_') {
+ // Guest template found
+ $extraPath = 'guest/';
+ } elseif (substr($template, 0, 7) == 'member_') {
+ // Member template found
+ $extraPath = 'member/';
+ } elseif (substr($template, 0, 7) == 'select_') {
+ // Selection template found
+ $extraPath = 'select/';
+ } elseif (substr($template, 0, 8) == 'install_') {
+ // Installation template found
+ $extraPath = 'install/';
+ } elseif (substr($template, 0, 4) == 'ext_') {
+ // Extension template found
+ $extraPath = 'ext/';
+ } elseif (substr($template, 0, 3) == 'la_') {
+ // 'Logical-area' template found
+ $extraPath = 'la/';
+ } elseif (substr($template, 0, 3) == 'js_') {
+ // JavaScript template found
+ $extraPath = 'js/';
+ } elseif (substr($template, 0, 5) == 'menu_') {
+ // Menu template found
+ $extraPath = 'menu/';
+ } else {
+ // Test for extension
+ $test = substr($template, 0, strpos($template, '_'));
- // Probe for valid extension name
- if (isExtensionNameValid($test)) {
- // Set extra path to extension's name
- $extraPath = $test . '/';
- } // END - if
- }
+ // Probe for valid extension name
+ if (isExtensionNameValid($test)) {
+ // Set extra path to extension's name
+ $extraPath = $test . '/';
+ } // END - if
+ }
+
+ // Store it in cache
+ $GLOBALS['extra_path'][$template] = $extraPath;
+ } // END - if
// Return result
- return $extraPath;
+ return $GLOBALS['extra_path'][$template];
}
// Loads an email template and compiles it
-function loadEmailTemplate ($template, $content = array(), $UID = '0') {
+function loadEmailTemplate ($template, $content = array(), $userid = '0') {
global $DATA;
// Make sure all template names are lowercase!
@@ -400,61 +424,44 @@ function loadEmailTemplate ($template, $content = array(), $UID = '0') {
// Default 'nickname' if extension is not installed
$nick = '---';
- // Prepare IP number and User Agent
- $REMOTE_ADDR = detectRemoteAddr();
- $HTTP_USER_AGENT = detectUserAgent();
-
- // Default admin
- $ADMIN = getConfig('MAIN_TITLE');
-
- // Is the admin logged in?
- if (isAdmin()) {
- // Get admin id
- $adminId = getCurrentAdminId();
-
- // Load Admin data
- $ADMIN = getAdminEmail($adminId);
- } // END - if
-
// Neutral email address is default
$email = getConfig('WEBMASTER');
- // Expiration in a nice output format
- // NOTE: Use $content[expiration] in your templates instead of $EXPIRATION
- if (getConfig('auto_purge') == '0') {
- // Will never expire!
- $EXPIRATION = getMessage('MAIL_WILL_NEVER_EXPIRE');
- } else {
- // Create nice date string
- $EXPIRATION = createFancyTime(getConfig('auto_purge'));
- }
-
// Is content an array?
if (is_array($content)) {
- // Add expiration to array, $EXPIRATION is now deprecated!
- $content['expiration'] = $EXPIRATION;
+ // Add expiration to array
+ if ((isConfigEntrySet('auto_purge')) && (getConfig('auto_purge') == '0')) {
+ // Will never expire!
+ $content['expiration'] = getMessage('MAIL_WILL_NEVER_EXPIRE');
+ } elseif (isConfigEntrySet('auto_purge')) {
+ // Create nice date string
+ $content['expiration'] = createFancyTime(getConfig('auto_purge'));
+ } else {
+ // Missing entry
+ $content['expiration'] = getMessage('MAIL_NO_CONFIG_AUTO_PURGE');
+ }
} // END - if
// Load user's data
- //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):UID={$UID},template={$template},content[]=".gettype($content).'
');
- if (($UID > 0) && (is_array($content))) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "UID={$userid},template={$template},content[]=".gettype($content).'
');
+ if (($userid > 0) && (is_array($content))) {
// If nickname extension is installed, fetch nickname as well
- if (isNicknameUsed($UID)) {
- //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):NICKNAME!
");
+ if ((isExtensionActive('nickname')) && (isNicknameUsed($userid))) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "NICKNAME!
");
// Load by nickname
- fetchUserData($UID, 'nickname');
+ fetchUserData($userid, 'nickname');
} else {
- //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):NO-NICK!
");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "NO-NICK!
");
/// Load by userid
- fetchUserData($UID);
+ fetchUserData($userid);
}
// Merge data if valid
- //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):content()=".count($content)." - PRE
");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "content()=".count($content)." - PRE
");
if (isUserDataValid()) {
$content = merge_array($content, getUserDataArray());
} // END - if
- //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):content()=".count($content)." - AFTER
");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "content()=".count($content)." - AFTER
");
} // END - if
// Translate M to male or F to female if present
@@ -463,8 +470,8 @@ function loadEmailTemplate ($template, $content = array(), $UID = '0') {
// Overwrite email from data if present
if (isset($content['email'])) $email = $content['email'];
- // Store email for some functions in global data array
- // @TODO Do only use $contentn, not $DATA or raw variables
+ // Store email for some functions in global $DATA array
+ // @TODO Do only use $content, not $DATA or raw variables
$DATA['email'] = $email;
// Base directory
@@ -510,7 +517,7 @@ function loadEmailTemplate ($template, $content = array(), $UID = '0') {
// Is there some content?
if (empty($newContent)) {
// Compiling failed
- $newContent = "Compiler error for template {$template}!\nUncompiled content:\n" . $GLOBALS['tpl_content'];
+ $newContent = "Compiler error for template " . $template . " !\nUncompiled content:\n" . $GLOBALS['tpl_content'];
// Add last error if the required function exists
if (function_exists('error_get_last')) $newContent .= "\n--------------------------------------\nDebug:\n".print_r(error_get_last(), true)."--------------------------------------\nPlease don't alter these informations!\nThanx.";
@@ -526,7 +533,7 @@ function loadEmailTemplate ($template, $content = array(), $UID = '0') {
// Send mail out to an email address
function sendEmail ($toEmail, $subject, $message, $isHtml = 'N', $mailHeader = '') {
- //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):TO={$toEmail},SUBJECT={$subject}
");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "TO={$toEmail},SUBJECT={$subject}
");
// Compile subject line (for POINTS constant etc.)
eval("\$subject = decodeEntities(\"".compileRawCode(escapeQuotes($subject))."\");");
@@ -552,7 +559,7 @@ function sendEmail ($toEmail, $subject, $message, $isHtml = 'N', $mailHeader = '
// Is the webmaster!
$toEmail = getConfig('WEBMASTER');
}
- //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):TO={$toEmail}
");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "TO={$toEmail}
");
// Check for PHPMailer or debug-mode
if (!checkPhpMailerUsage()) {
@@ -578,17 +585,17 @@ function sendEmail ($toEmail, $subject, $message, $isHtml = 'N', $mailHeader = '
eval("\$toEmail = \"".compileRawCode(escapeQuotes($toEmail))."\";");
// Compile "MSG"
- eval("\$message = \"".compileRawCode(escapeQuotes($message))."\";");
+ eval("\$message = \"".str_replace('$', '$', compileRawCode(escapeQuotes($message)))."\";");
// Fix HTML parameter (default is no!)
if (empty($isHtml)) $isHtml = 'N';
if (isDebugModeEnabled()) {
// In debug mode we want to display the mail instead of sending it away so we can debug this part
outputHtml('
-Headers : ' . str_replace('<', '<', str_replace('>', '>', secureString(trim($mailHeader)))) . '
-To : ' . $toEmail . '
-Subject : ' . $subject . '
-Message : ' . $message . '
+Headers : ' . htmlentities(utf8_decode(trim($mailHeader))) . '
+To : ' . htmlentities(utf8_decode($toEmail)) . '
+Subject : ' . htmlentities(utf8_decode($subject)) . '
+Message : ' . htmlentities(utf8_decode($message)) . '
');
} elseif (($isHtml == 'Y') && (isExtensionActive('html_mail'))) {
// Send mail as HTML away
@@ -749,7 +756,7 @@ function translateYesNo ($yn) {
// Translates the "pool type" into human-readable
function translatePoolType ($type) {
// Default?type is unknown
- $translated = sprintf(getMessage('POOL_TYPE_UNKNOWN'), $type);
+ $translated = getMaskedMessage('POOL_TYPE_UNKNOWN', $type);
// Generate constant
$constName = sprintf("POOL_TYPE_%s", $type);
@@ -814,10 +821,10 @@ function translateGender ($gender) {
case 'F': $ret = getMessage('GENDER_F'); break;
case 'C': $ret = getMessage('GENDER_C'); break;
default:
- // Log unknown gender
- logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown gender %s detected.", $gender));
+ // Please report bugs on unknown genders
+ debug_report_bug(sprintf("Unknown gender %s detected.", $gender));
break;
- }
+ } // END - switch
// Return translated gender
return $ret;
@@ -839,8 +846,8 @@ function translateUserStatus ($status) {
break;
default:
- logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown status %s detected.", $status));
- $ret = sprintf(getMessage('UNKNOWN_STATUS'), $status);
+ // Please report all unknown status
+ debug_report_bug(sprintf("Unknown status %s detected.", $status));
break;
} // END - switch
@@ -853,7 +860,7 @@ function generateDerefererUrl ($URL) {
// Don't de-refer our own links!
if (substr($URL, 0, strlen(getConfig('URL'))) != getConfig('URL')) {
// De-refer this link
- $URL = '{?URL?}/modules.php?module=loader&url=' . encodeString(compileUriCode($URL));
+ $URL = '{%url=modules.php?module=loader&url=' . encodeString(compileUriCode($URL)) . '%}';
} // END - if
// Return link
@@ -863,7 +870,7 @@ function generateDerefererUrl ($URL) {
// Generates an URL for the frametester
function generateFrametesterUrl ($URL) {
// Prepare frametester URL
- $frametesterUrl = sprintf("{?URL?}/modules.php?module=frametester&url=%s",
+ $frametesterUrl = sprintf("{%%url=modules.php?module=frametester&url=%s%%}",
encodeString(compileUriCode($URL))
);
@@ -894,7 +901,7 @@ function countSelection ($array) {
// Generate XHTML code for the CAPTCHA
function generateCaptchaCode ($code, $type, $DATA, $userid) {
- return '';
+ return '';
}
// Generates a timestamp (some wrapper for mktime())
@@ -916,20 +923,9 @@ function makeTime ($hours, $minutes, $seconds, $stamp) {
}
// Redirects to an URL and if neccessarry extends it with own base URL
-function redirectToUrl ($URL) {
+function redirectToUrl ($URL, $allowSpider = true) {
// Compile out codes
- eval('$URL = "' . compileRawCode($URL) . '";');
-
- // Check if http(s):// is there
- if ((substr($URL, 0, 7) != 'http://') && (substr($URL, 0, 8) != 'https://')) {
- // Make all URLs full-qualified
- $URL = getConfig('URL') . '/' . $URL;
- } // END - if
-
- // Three different debug ways...
- //* DEBUG: */ debug_report_bug(sprintf("%s[%s:] URL=%s", __FUNCTION__, __LINE__, $URL));
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'URL=' . $URL);
- //* DEBUG: */ die($URL);
+ eval('$URL = "' . compileRawCode(encodeUrl($URL)) . '";');
// Default 'rel' value is external, nofollow is evil from Google and hurts the Internet
$rel = ' rel="external"';
@@ -940,23 +936,22 @@ function redirectToUrl ($URL) {
$rel = '';
} // END - if
- // Get output buffer
- $GLOBALS['output'] = ob_get_contents();
-
- // Clear it only if there is content
- if (!empty($GLOBALS['output'])) {
- clearOutputBuffer();
- } // END - if
+ // Three different ways to debug...
+ //* DEBUG: */ debug_report_bug(sprintf("%s[%s:] URL=%s", __FUNCTION__, __LINE__, $URL));
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'URL=' . $URL);
+ //* DEBUG: */ die($URL);
// Simple probe for bots/spiders from search engines
- if ((strpos(detectUserAgent(), 'spider') !== false) || (strpos(detectUserAgent(), 'bot') !== false)) {
+ if ((isSpider()) && ($allowSpider === true)) {
// Secure the URL against bad things such als HTML insertions and so on...
$URL = secureString($URL);
+ // Set content-type here to fix a missing array element
+ setContentType('text/html');
+
// Output new location link as anchor
outputHtml('' . $URL . '');
} elseif (!headers_sent()) {
- //* DEBUG: */ debug_report_bug("URL={$URL}");
// Clear own output buffer
$GLOBALS['output'] = '';
@@ -997,16 +992,16 @@ function compileCode ($code, $simple = false, $constants = true, $full = true) {
} // END - if
// Start couting
- $startCompile = explode(' ', microtime());
+ $startCompile = microtime(true);
// Comile the code
$code = compileRawCode($code, $simple, $constants, $full);
// Get timing
- $compiled = explode(' ', microtime());
+ $compiled = microtime(true);
// Add timing
- $code .= '';
+ $code .= '';
// Return compiled code
return $code;
@@ -1034,11 +1029,11 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true
if ($constants === true) {
// BEFORE 0.2.1 : Language and data constants
// WITH 0.2.1+ : Only language constants
- $code = str_replace('{--', "\".getMessage('", str_replace('--}', "').\"", $code));
+ $code = str_replace('{--', "\" . getMessage('", str_replace('--}', "') . \"", $code));
// BEFORE 0.2.1 : Not used
// WITH 0.2.1+ : Data constants
- $code = str_replace('{!', "\".constant('", str_replace("!}", "').\"", $code));
+ $code = str_replace('{!', "\" . constant('", str_replace('!}', "') . \"", $code));
} // END - if
// Compile QUOT and other non-HTML codes
@@ -1065,10 +1060,10 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true
$test = substr($found, 0, strlen($match));
// Does this entry exist?
- //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):found={$found},match={$match},set={$set}
");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "found={$found},match={$match},set={$set}
");
if ($test == $match) {
// Match found!
- //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):fuzzyFound!
");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "fuzzyFound!
");
$fuzzyFound = true;
break;
} // END - if
@@ -1080,14 +1075,14 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true
// Take all string elements
if ((is_string($matches[4][$key])) && (!isset($matchesFound[$match])) && (!isset($matchesFound[$key."_" . $matches[4][$key]]))) {
// Replace it in the code
- //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):key={$key},match={$match}
");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "key={$key},match={$match}
");
$newMatch = str_replace('[', "['", str_replace(']', "']", $match));
$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}
");
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "match={$match}
");
$code = str_replace($match, '".' . $match . '."', $code);
$matchesFound[$match] = 1;
}
@@ -1269,7 +1264,7 @@ function addSelectionBox ($type, $default, $prefix = '', $id = '0', $class = 're
//
function generateRandomCode ($length, $code, $userid, $DATA = '') {
// Build server string
- $server = $_SERVER['PHP_SELF'] . getConfig('ENCRYPT_SEPERATOR') . detectUserAgent() . getConfig('ENCRYPT_SEPERATOR') . getenv('SERVER_SOFTWARE') . getConfig('ENCRYPT_SEPERATOR') . detectRemoteAddr().":'.':".filemtime(getConfig('PATH').'inc/databases.php');
+ $server = $_SERVER['PHP_SELF'] . getConfig('ENCRYPT_SEPERATOR') . detectUserAgent() . getConfig('ENCRYPT_SEPERATOR') . getenv('SERVER_SOFTWARE') . getConfig('ENCRYPT_SEPERATOR') . detectRemoteAddr();
// Build key string
$keys = getConfig('SITE_KEY') . getConfig('ENCRYPT_SEPERATOR') . getConfig('DATE_KEY');
@@ -1320,7 +1315,7 @@ function generateRandomCode ($length, $code, $userid, $DATA = '') {
}
// Does only allow numbers
-function bigintval ($num, $castValue = true) {
+function bigintval ($num, $castValue = true, $abortOnMismatch = true) {
// Filter all numbers out
$ret = preg_replace('/[^0123456789]/', '', $num);
@@ -1328,7 +1323,7 @@ function bigintval ($num, $castValue = true) {
if ($castValue === true) $ret = (double)$ret;
// Has the whole value changed?
- if ('' . $ret . '' != '' . $num . '') {
+ if (('' . $ret . '' != '' . $num . '') && ($abortOnMismatch === true)) {
// Log the values
debug_report_bug('Problem with number found. ret=' . $ret . ', num='. $num);
} // END - if
@@ -1341,11 +1336,11 @@ 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')) {
- // Stop2 execution of function here because of over-sized code length
+ // Stop 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
- return "\n";
+ return "\n";
}
// Load image
@@ -1396,6 +1391,16 @@ function generateImageOrCode ($img_code, $headerSent = true) {
}
// Create selection box or array of splitted timestamp
function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = 'center', $return_array=false) {
+ // Do not continue if ONE_DAY is absend
+ if (!isConfigEntrySet('ONE_DAY')) {
+ // And return the timestamp itself or empty array
+ if ($return_array === true) {
+ return array();
+ } else {
+ return $timestamp;
+ }
+ } // END - if
+
// Calculate 2-seconds timestamp
$stamp = round($timestamp);
//* DEBUG: */ print("*" . $stamp.'/' . $timestamp."*
");
@@ -1458,31 +1463,31 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align =
$OUT .= "\n";
if (ereg('Y', $display) || (empty($display))) {
- $OUT .= " {--_YEARS--} | \n";
+ $OUT .= " {--_YEARS--} | \n";
}
if (ereg('M', $display) || (empty($display))) {
- $OUT .= " {--_MONTHS--} | \n";
+ $OUT .= " {--_MONTHS--} | \n";
}
if (ereg('W', $display) || (empty($display))) {
- $OUT .= " {--_WEEKS--} | \n";
+ $OUT .= " {--_WEEKS--} | \n";
}
if (ereg('D', $display) || (empty($display))) {
- $OUT .= " {--_DAYS--} | \n";
+ $OUT .= " {--_DAYS--} | \n";
}
if (ereg('h', $display) || (empty($display))) {
- $OUT .= " {--_HOURS--} | \n";
+ $OUT .= " {--_HOURS--} | \n";
}
if (ereg('m', $display) || (empty($display))) {
- $OUT .= " {--_MINUTES--} | \n";
+ $OUT .= " {--_MINUTES--} | \n";
}
if (ereg('s', $display) || (empty($display))) {
- $OUT .= " {--_SECONDS--} | \n";
+ $OUT .= " {--_SECONDS--} | \n";
}
$OUT .= "
\n";
@@ -1490,7 +1495,7 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align =
if (ereg('Y', $display) || (empty($display))) {
// Generate year selection
- $OUT .= " |