X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Ffunctions.php;h=342ab2e3fcf36b64cbc907c6fd2cb2dd189f5def;hp=d157a7ed00344842431105feecb76d2b92f85811;hb=eebb737fcb823c159d66732d37c336bc932c3246;hpb=ccc4a69ce9b17aa8d7b1554a3b2b017db091821b diff --git a/inc/functions.php b/inc/functions.php index d157a7ed00..342ab2e3fc 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -114,12 +114,15 @@ function OUTPUT_HTML ($HTML, $newLine = true) { sendHeader('Connection: Close'); // Extension 'rewrite' installed? - if ((EXT_IS_ACTIVE('rewrite')) && ($GLOBALS['output_mode'] != '1') && ($GLOBALS['output_mode'] != '-1')) { + if ((EXT_IS_ACTIVE('rewrite')) && (getOutputMode() != '1') && (getOutputMode() != '-1')) { $OUTPUT = rewriteLinksInCode($OUTPUT); } // END - if // Compile and run finished rendered HTML code while (strpos($OUTPUT, '{!') > 0) { + // Replace _MYSQL_PREFIX + $OUTPUT = str_replace("{!_MYSQL_PREFIX!}", getConfig('_MYSQL_PREFIX'), $OUTPUT); + // Prepare the content and eval() it... $newContent = ''; $eval = "\$newContent = \"".COMPILE_CODE(smartAddSlashes($OUTPUT))."\";"; @@ -128,7 +131,7 @@ function OUTPUT_HTML ($HTML, $newLine = true) { // Was that eval okay? if (empty($newContent)) { // Something went wrong! - app_die(__FUNCTION__, __LINE__, "Evaluation error:
".htmlentities($eval)."
"); + app_die(__FUNCTION__, __LINE__, 'Evaluation error:
' . htmlentities($eval) . '
'); } // END - if $OUTPUT = $newContent; } // END - while @@ -137,7 +140,7 @@ function OUTPUT_HTML ($HTML, $newLine = true) { outputRawCode($OUTPUT); } elseif ((getConfig('OUTPUT_MODE') == 'render') && (!empty($OUTPUT))) { // Rewrite links when rewrite extension is active - if ((EXT_IS_ACTIVE('rewrite')) && ($GLOBALS['output_mode'] != '1') && ($GLOBALS['output_mode'] != '-1')) { + if ((EXT_IS_ACTIVE('rewrite')) && (getOutputMode() != '1') && (getOutputMode() != '-1')) { $OUTPUT = rewriteLinksInCode($OUTPUT); } // END - if @@ -208,6 +211,9 @@ function getTotalFatalErrors () { // Load a template file and return it's content (only it's name; do not use ' or ") function LOAD_TEMPLATE ($template, $return=false, $content=array()) { + // @TODO Remove this sanity-check if all is fine + if (!is_bool($return)) debug_report_bug('return is not bool (' . gettype($return) . ')'); + // Add more variables which you want to use in your template files global $DATA, $username; @@ -230,10 +236,10 @@ function LOAD_TEMPLATE ($template, $return=false, $content=array()) { if (empty($GLOBALS['refid'])) $GLOBALS['refid'] = 0; // @DEPRECATED Try to rewrite the if() condition - if ($template == "member_support_form") { + 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", - array(getUserId()), __FUNCTION__, __LINE__); + array(getUserId()), __FUNCTION__, __LINE__); // Is content an array? if (is_array($content)) { @@ -265,45 +271,48 @@ function LOAD_TEMPLATE ($template, $return=false, $content=array()) { $mode = ''; // Check for admin/guest/member templates - if (strpos($template, "admin_") > -1) { + if (strpos($template, 'admin_') > -1) { // Admin template found - $mode = "admin/"; - } elseif (strpos($template, "guest_") > -1) { + $mode = 'admin/'; + } elseif (strpos($template, 'guest_') > -1) { // Guest template found - $mode = "guest/"; - } elseif (strpos($template, "member_") > -1) { + $mode = 'guest/'; + } elseif (strpos($template, 'member_') > -1) { // Member template found - $mode = "member/"; - } elseif (strpos($template, "install_") > -1) { + $mode = 'member/'; + } elseif (strpos($template, 'install_') > -1) { // Installation template found - $mode = "install/"; - } elseif (strpos($template, "ext_") > -1) { + $mode = 'install/'; + } elseif (strpos($template, 'ext_') > -1) { // Extension template found - $mode = "ext/"; - } elseif (strpos($template, "la_") > -1) { - // "Logical-area" template found - $mode = "la/"; + $mode = 'ext/'; + } elseif (strpos($template, 'la_') > -1) { + // 'Logical-area' template found + $mode = 'la/'; + } elseif (strpos($template, 'js_') > -1) { + // JavaScript template found + $mode = 'js/'; } else { // Test for extension - $test = substr($template, 0, strpos($template, "_")); + $test = substr($template, 0, strpos($template, '_')); if (EXT_IS_ACTIVE($test)) { // Set extra path to extension's name - $mode = $test.'/'; - } + $mode = $test . '/'; + } // END - if } //////////////////////// // Generate file name // //////////////////////// - $FQFN = $basePath.$mode.$template.".tpl"; + $FQFN = $basePath . $mode . $template . '.tpl'; - if ((!empty($GLOBALS['what'])) && ((strpos($template, "_header") > 0) || (strpos($template, "_footer") > 0)) && (($mode == "guest/") || ($mode == "member/") || ($mode == "admin/"))) { + if ((isWhatSet()) && ((strpos($template, '_header') > 0) || (strpos($template, '_footer') > 0)) && (($mode == 'guest/') || ($mode == 'member/') || ($mode == 'admin/'))) { // Select what depended header/footer template file for admin/guest/member area $file2 = sprintf("%s%s%s_%s.tpl", - $basePath, - $mode, - $template, - SQL_ESCAPE($GLOBALS['what']) + $basePath, + $mode, + $template, + getWhat() ); // Probe for it... @@ -311,12 +320,12 @@ function LOAD_TEMPLATE ($template, $return=false, $content=array()) { // Remove variable from memory unset($file2); - } + } // END - if // Does the special template exists? if (!isFileReadable($FQFN)) { // Reset to default template - $FQFN = $basePath.$template.".tpl"; + $FQFN = $basePath . $template . '.tpl'; } // END - if // Now does the final template exists? @@ -339,7 +348,7 @@ function LOAD_TEMPLATE ($template, $return=false, $content=array()) { } // Add surrounding HTML comments to help finding bugs faster - $ret = "\n".$ret."\n"; + $ret = "\n" . $ret . "\n"; } elseif ((IS_ADMIN()) || ((isInstalling()) && (!isInstalled()))) { // Only admins shall see this warning or when installation mode is active $ret = "
{--TEMPLATE_404--}
@@ -368,12 +377,12 @@ function LOAD_TEMPLATE ($template, $return=false, $content=array()) { } } elseif (isDebugModeEnabled()) { // Warning, empty output! - return "E:".$template."
\n"; + return "E:" . $template."
\n"; } } // Send mail out to an email address -function sendEmail($toEmail, $subject, $message, $HTML = 'N', $mailHeader = '') { +function sendEmail ($toEmail, $subject, $message, $HTML = 'N', $mailHeader = '') { //* DEBUG: */ print __FUNCTION__."(".__LINE__."):TO={$toEmail},SUBJECT={$subject}
\n"; // Compile subject line (for POINTS constant etc.) @@ -403,7 +412,7 @@ function sendEmail($toEmail, $subject, $message, $HTML = 'N', $mailHeader = '') // Free result SQL_FREERESULT($result_email); } - } elseif ("$toEmail" == '0') { + } elseif ($toEmail == '0') { // Is the webmaster! $toEmail = constant('WEBMASTER'); } @@ -414,18 +423,18 @@ function sendEmail($toEmail, $subject, $message, $HTML = 'N', $mailHeader = '') // Not in PHPMailer-Mode if (empty($mailHeader)) { // Load email header template - $mailHeader = LOAD_EMAIL_TEMPLATE("header"); + $mailHeader = LOAD_EMAIL_TEMPLATE('header'); } else { // Append header - $mailHeader .= LOAD_EMAIL_TEMPLATE("header"); + $mailHeader .= LOAD_EMAIL_TEMPLATE('header'); } } elseif (isDebugModeEnabled()) { if (empty($mailHeader)) { // Load email header template - $mailHeader = LOAD_EMAIL_TEMPLATE("header"); + $mailHeader = LOAD_EMAIL_TEMPLATE('header'); } else { // Append header - $mailHeader .= LOAD_EMAIL_TEMPLATE("header"); + $mailHeader .= LOAD_EMAIL_TEMPLATE('header'); } } @@ -441,11 +450,11 @@ function sendEmail($toEmail, $subject, $message, $HTML = 'N', $mailHeader = '') if (empty($HTML)) $HTML = 'N'; if (isDebugModeEnabled()) { // In debug mode we want to display the mail instead of sending it away so we can debug this part - print("
+		OUTPUT_HTML("
 ".htmlentities(trim($mailHeader))."
-To      : ".$toEmail."
-Subject : ".$subject."
-Message : ".$message."
+To      : " . $toEmail."
+Subject : " . $subject."
+Message : " . $message."
 
\n"); } elseif (($HTML == 'Y') && (EXT_IS_ACTIVE('html_mail'))) { // Send mail as HTML away @@ -467,7 +476,7 @@ function checkPhpMailerUsage() { } // Send out a raw email with PHPMailer class or legacy mail() command -function sendRawEmail ($toEmail, $subject, $msg, $from) { +function sendRawEmail ($toEmail, $subject, $message, $from) { // Shall we use PHPMailer class or legacy mode? if (checkPhpMailerUsage()) { // Use PHPMailer class with SMTP enabled @@ -491,13 +500,13 @@ function sendRawEmail ($toEmail, $subject, $msg, $from) { } $mail->FromName = constant('MAIN_TITLE'); $mail->Subject = $subject; - if ((EXT_IS_ACTIVE('html_mail')) && (strip_tags($msg) != $msg)) { - $mail->Body = $msg; + if ((EXT_IS_ACTIVE('html_mail')) && (strip_tags($message) != $message)) { + $mail->Body = $message; $mail->AltBody = 'Your mail program required HTML support to read this mail!'; $mail->WordWrap = 70; $mail->IsHTML(true); } else { - $mail->Body = decodeEntities($msg); + $mail->Body = decodeEntities($message); } $mail->AddAddress($toEmail, ''); $mail->AddReplyTo(constant('WEBMASTER'), constant('MAIN_TITLE')); @@ -506,21 +515,21 @@ function sendRawEmail ($toEmail, $subject, $msg, $from) { $mail->Send(); } else { // Use legacy mail() command - @mail($toEmail, $subject, decodeEntities($msg), $from); + mail($toEmail, $subject, decodeEntities($message), $from); } } // Generate a password in a specified length or use default password length -function generatePassword ($LEN = 0) { +function generatePassword ($length = 0) { // Auto-fix invalid length of zero - if ($LEN == 0) $LEN = getConfig('pass_len'); + if ($length == 0) $length = getConfig('pass_len'); // Initialize array with all allowed chars - $ABC = explode(',', 'a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9,-,+,_,/'); + $ABC = explode(',', 'a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9,-,+,_,/,.'); // Start creating password $PASS = ''; - for ($i = 0; $i < $LEN; $i++) { + for ($i = 0; $i < $length; $i++) { $PASS .= $ABC[mt_rand(0, count($ABC) -1)]; } // END - for @@ -577,7 +586,7 @@ function generateDateTime ($time, $mode = '0') { // Translates Y/N to yes/no function translateYesNo ($yn) { // Default - $translated = "??? (".$yn.')'; + $translated = "??? (" . $yn.')'; switch ($yn) { case 'Y': $translated = getMessage('YES'); break; case 'N': $translated = getMessage('NO'); break; @@ -732,7 +741,10 @@ function generateCaptchaCode ($code, $type, $DATA, $uid) { // Loads an email template and compiles it function LOAD_EMAIL_TEMPLATE ($template, $content = array(), $UID = '0') { - global $DATA, $_CONFIG; + global $DATA; + + // Our configuration is kept non-global here + $_CONFIG = getConfigArray(); // Make sure all template names are lowercase! $template = strtolower($template); @@ -815,29 +827,29 @@ function LOAD_EMAIL_TEMPLATE ($template, $content = array(), $UID = '0') { // Check for admin/guest/member templates if (strpos($template, 'admin_') > -1) { // Admin template found - $FQFN = $basePath.'admin/'.$template.'.tpl'; + $FQFN = $basePath.'admin/' . $template.'.tpl'; } elseif (strpos($template, 'guest_') > -1) { // Guest template found - $FQFN = $basePath.'guest/'.$template.'.tpl'; + $FQFN = $basePath.'guest/' . $template.'.tpl'; } elseif (strpos($template, 'member_') > -1) { // Member template found - $FQFN = $basePath.'member/'.$template.'.tpl'; + $FQFN = $basePath.'member/' . $template.'.tpl'; } else { // Test for extension $test = substr($template, 0, strpos($template, '_')); if (EXT_IS_ACTIVE($test)) { // Set extra path to extension's name - $FQFN = $basePath.$test.'/'.$template.'.tpl'; + $FQFN = $basePath . $test.'/' . $template.'.tpl'; } else { // No special filename - $FQFN = $basePath.$template.'.tpl'; + $FQFN = $basePath . $template.'.tpl'; } } // Does the special template exists? if (!isFileReadable($FQFN)) { // Reset to default template - $FQFN = $basePath.$template.'.tpl'; + $FQFN = $basePath . $template.'.tpl'; } // END - if // Now does the final template exists? @@ -852,7 +864,7 @@ function LOAD_EMAIL_TEMPLATE ($template, $content = array(), $UID = '0') { eval($tmpl_file); } elseif (!empty($template)) { // Template file not found! - $newContent = "{--TEMPLATE_404--}: ".$template."
+ $newContent = "{--TEMPLATE_404--}: " . $template."
{--TEMPLATE_CONTENT--}
".print_r($content, true)."
{--TEMPLATE_DATA--} @@ -869,7 +881,7 @@ function LOAD_EMAIL_TEMPLATE ($template, $content = array(), $UID = '0') { // Is there some content? if (empty($newContent)) { // Compiling failed - $newContent = "Compiler error for template {$template}!\nUncompiled content:\n".$tmpl_file; + $newContent = "Compiler error for template {$template}!\nUncompiled content:\n" . $tmpl_file; // 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."; } // END - if @@ -926,11 +938,11 @@ function redirectToUrl ($URL) { clearOutputBuffer(); } // END - if - // Secure the URL against bad things such als HTML insertions and so on... - $URL = htmlentities(strip_tags($URL), ENT_QUOTES); - // Simple probe for bots/spiders from search engines if ((strpos(detectUserAgent(), 'spider') !== false) || (strpos(detectUserAgent(), 'bot') !== false)) { + // Secure the URL against bad things such als HTML insertions and so on... + $URL = htmlentities(strip_tags($URL), ENT_QUOTES); + // Output new location link as anchor OUTPUT_HTML('' . $URL . ''); } elseif (!headers_sent()) { @@ -1027,17 +1039,17 @@ function COMPILE_CODE ($code, $simple = false, $constants = true, $full = true) if ($fuzzyFound) continue; // Take all string elements - if ((is_string($matches[4][$key])) && (!isset($matchesFound[$match])) && (!isset($matchesFound[$key."_".$matches[4][$key]]))) { + if ((is_string($matches[4][$key])) && (!isset($matchesFound[$match])) && (!isset($matchesFound[$key."_" . $matches[4][$key]]))) { // Replace it in the code //* DEBUG: */ print __FUNCTION__."(".__LINE__."):key={$key},match={$match}
\n"; - $newMatch = str_replace("[".$matches[4][$key]."]", "['".$matches[4][$key]."']", $match); - $code = str_replace($match, "\".".$newMatch.".\"", $code); - $matchesFound[$key."_".$matches[4][$key]] = 1; + $newMatch = str_replace("[" . $matches[4][$key]."]", "['" . $matches[4][$key]."']", $match); + $code = str_replace($match, "\"." . $newMatch.".\"", $code); + $matchesFound[$key."_" . $matches[4][$key]] = 1; $matchesFound[$match] = 1; } elseif (!isset($matchesFound[$match])) { // Not yet replaced! //* DEBUG: */ print __FUNCTION__."(".__LINE__."):match={$match}
\n"; - $code = str_replace($match, "\".".$match.".\"", $code); + $code = str_replace($match, "\"." . $match.".\"", $code); $matchesFound[$match] = 1; } } // END - foreach @@ -1104,30 +1116,30 @@ function ADD_SELECTION ($type, $default, $prefix = '', $id = '0') { if ($type == 'yn') { // This is a yes/no selection only! - if ($id > 0) $prefix .= "[".$id."]"; - $OUT .= " \n"; } else { // Begin with regular selection box here if (!empty($prefix)) $prefix .= "_"; $type2 = $type; - if ($id > 0) $type2 .= "[".$id."]"; - $OUT .= " \n"; } switch ($type) { case "day": // Day for ($idx = 1; $idx < 32; $idx++) { - $OUT .= "\n"; } // END - for break; case "month": // Month foreach ($GLOBALS['month_descr'] as $month => $descr) { - $OUT .= "\n"; } // END - for break; @@ -1150,19 +1162,19 @@ function ADD_SELECTION ($type, $default, $prefix = '', $id = '0') { // Check if the default value is larger than minimum and bigger than actual year if (($default > $minYear) && ($default >= $year)) { for ($idx = $year; $idx < ($year + 11); $idx++) { - $OUT .= "\n"; } // END - for } elseif ($default == -1) { // Current year minus 1 for ($idx = $startYear; $idx <= ($year + 1); $idx++) { - $OUT .= "\n"; + $OUT .= "\n"; } } else { // Get current year and subtract the configured minimum age - $OUT .= "\n"; + $OUT .= "\n"; // Calculate earliest year depending on extension version if (GET_EXT_VERSION('other') >= '0.2.1') { // Use configured minimum age @@ -1174,9 +1186,9 @@ function ADD_SELECTION ($type, $default, $prefix = '', $id = '0') { // Construct year selection list for ($idx = $minYear; $idx <= $year; $idx++) { - $OUT .= "\n"; } // END - for } break; @@ -1184,19 +1196,19 @@ function ADD_SELECTION ($type, $default, $prefix = '', $id = '0') { case "sec": case "min": for ($idx = 0; $idx < 60; $idx+=5) { - if (strlen($idx) == 1) $idx = '0'.$idx; - $OUT .= "\n"; } // END - for break; case "hour": for ($idx = 0; $idx < 24; $idx++) { - if (strlen($idx) == 1) $idx = '0'.$idx; - $OUT .= "\n"; } // END - for break; @@ -1232,27 +1244,27 @@ function generateRandomCode ($length, $code, $uid, $DATA = '') { if (isConfigEntrySet('master_salt')) $keys .= getConfig('ENCRYPT_SEPERATOR').getConfig('master_salt'); // Build string from misc data - $data = $code.getConfig('ENCRYPT_SEPERATOR').$uid.getConfig('ENCRYPT_SEPERATOR').$DATA; + $data = $code.getConfig('ENCRYPT_SEPERATOR') . $uid.getConfig('ENCRYPT_SEPERATOR') . $DATA; // Add more additional data if (isSessionVariableSet('u_hash')) $data .= getConfig('ENCRYPT_SEPERATOR').getSession('u_hash'); if (isUserIdSet()) $data .= getConfig('ENCRYPT_SEPERATOR').getUserId(); if (isSessionVariableSet('mxchange_theme')) $data .= getConfig('ENCRYPT_SEPERATOR').getSession('mxchange_theme'); if (isSessionVariableSet('mx_lang')) $data .= getConfig('ENCRYPT_SEPERATOR').getLanguage(); - if (isset($GLOBALS['refid'])) $data .= getConfig('ENCRYPT_SEPERATOR').$GLOBALS['refid']; + if (isset($GLOBALS['refid'])) $data .= getConfig('ENCRYPT_SEPERATOR') . $GLOBALS['refid']; // Calculate number for generating the code $a = $code + getConfig('_ADD') - 1; if (isConfigEntrySet('master_hash')) { // Generate hash with master salt from modula of number with the prime number and other data - $saltedHash = generateHash(($a % getConfig('_PRIME')).getConfig('ENCRYPT_SEPERATOR').$server.getConfig('ENCRYPT_SEPERATOR').$keys.getConfig('ENCRYPT_SEPERATOR').$data.getConfig('ENCRYPT_SEPERATOR').getConfig('DATE_KEY').getConfig('ENCRYPT_SEPERATOR').$a, getConfig('master_salt')); + $saltedHash = generateHash(($a % getConfig('_PRIME')).getConfig('ENCRYPT_SEPERATOR') . $server.getConfig('ENCRYPT_SEPERATOR') . $keys.getConfig('ENCRYPT_SEPERATOR') . $data.getConfig('ENCRYPT_SEPERATOR').getConfig('DATE_KEY').getConfig('ENCRYPT_SEPERATOR') . $a, getConfig('master_salt')); // Create number from hash $rcode = hexdec(substr($saltedHash, strlen(getConfig('master_salt')), 9)) / abs(constant('_MAX') - $a + sqrt(getConfig('_ADD'))) / pi(); } else { // Generate hash with "hash of site key" from modula of number with the prime number and other data - $saltedHash = generateHash(($a % getConfig('_PRIME')).getConfig('ENCRYPT_SEPERATOR').$server.getConfig('ENCRYPT_SEPERATOR').$keys.getConfig('ENCRYPT_SEPERATOR').$data.getConfig('ENCRYPT_SEPERATOR').getConfig('DATE_KEY').getConfig('ENCRYPT_SEPERATOR').$a, substr(sha1(getConfig('SITE_KEY')), 0, 8)); + $saltedHash = generateHash(($a % getConfig('_PRIME')).getConfig('ENCRYPT_SEPERATOR') . $server.getConfig('ENCRYPT_SEPERATOR') . $keys.getConfig('ENCRYPT_SEPERATOR') . $data.getConfig('ENCRYPT_SEPERATOR').getConfig('DATE_KEY').getConfig('ENCRYPT_SEPERATOR') . $a, substr(sha1(getConfig('SITE_KEY')), 0, 8)); // Create number from hash $rcode = hexdec(substr($saltedHash, 8, 9)) / abs(constant('_MAX') - $a + sqrt(getConfig('_ADD'))) / pi(); @@ -1280,9 +1292,9 @@ function bigintval ($num, $castValue = true) { // Has the whole value changed? // @TODO Remove this if() block if all is working fine - if ("".$ret."" != ''.$num."") { + if ('' . $ret . '' != '' . $num . '') { // Log the values - debug_report_bug("{$ret}<>{$num}"); + //debug_report_bug("{$ret}<>{$num}"); } // END - if // Return result @@ -1296,7 +1308,7 @@ function GENERATE_IMAGE ($img_code, $headerSent=true) { return; } elseif (!$headerSent) { // Return in an HTML code code - return "\"Image\"\n"; + return "\"Image\"\n"; } // Load image @@ -1343,7 +1355,7 @@ function GENERATE_IMAGE ($img_code, $headerSent=true) { function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = 'center', $return_array=false) { // Calculate 2-seconds timestamp $stamp = round($timestamp); - //* DEBUG: */ print("*".$stamp.'/'.$timestamp."*
"); + //* DEBUG: */ print("*" . $stamp.'/' . $timestamp."*
"); // Do we have a leap year? $SWITCH = 0; @@ -1398,7 +1410,7 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = ); } else { // Generate table - $OUT = "
\n"; + $OUT = "
\n"; $OUT .= "\n"; $OUT .= "\n"; @@ -1435,94 +1447,94 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align = if (ereg('Y', $display) || (empty($display))) { // Generate year selection - $OUT .= " \n"; } else { - $OUT .= "\n"; + $OUT .= "\n"; } if (ereg("M", $display) || (empty($display))) { // Generate month selection - $OUT .= " \n"; } else { - $OUT .= "\n"; + $OUT .= "\n"; } if (ereg("W", $display) || (empty($display))) { // Generate week selection - $OUT .= " \n"; } else { - $OUT .= "\n"; + $OUT .= "\n"; } if (ereg("D", $display) || (empty($display))) { // Generate day selection - $OUT .= " \n"; } else { - $OUT .= "\n"; + $OUT .= "\n"; } if (ereg("h", $display) || (empty($display))) { // Generate hour selection - $OUT .= " \n"; } else { - $OUT .= "\n"; + $OUT .= "\n"; } if (ereg('m', $display) || (empty($display))) { // Generate minute selection - $OUT .= " \n"; } else { - $OUT .= "\n"; + $OUT .= "\n"; } if (ereg("s", $display) || (empty($display))) { // Generate second selection - $OUT .= " \n"; } else { - $OUT .= "\n"; + $OUT .= "\n"; } $OUT .= "\n"; $OUT .= "
\n"; @@ -1568,7 +1580,7 @@ function SEND_ADMIN_EMAILS_PRO ($subj, $template, $content, $UID) { $template = trim($template); // Load email template - $msg = LOAD_EMAIL_TEMPLATE($template, $content, $UID); + $message = LOAD_EMAIL_TEMPLATE($template, $content, $UID); // Check which admin shall receive this mail $result = SQL_QUERY_ESC("SELECT DISTINCT admin_id FROM `{!_MYSQL_PREFIX!}_admins_mails` WHERE mail_template='%s' ORDER BY admin_id", @@ -1596,7 +1608,7 @@ function SEND_ADMIN_EMAILS_PRO ($subj, $template, $content, $UID) { if ($aid == '-1') { if (EXT_IS_ACTIVE('events')) { // Add line to user events - EVENTS_ADD_LINE($subj, $msg, $UID); + EVENTS_ADD_LINE($subj, $message, $UID); } else { // Log error for debug DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Extension 'events' missing: tpl=%s,subj=%s,UID=%s", @@ -1618,7 +1630,7 @@ function SEND_ADMIN_EMAILS_PRO ($subj, $template, $content, $UID) { // Load email addresses and send away while ($content = SQL_FETCHARRAY($result)) { - sendEmail($content['email'], $subj, $msg); + sendEmail($content['email'], $subj, $message); } // END - while // Free memory @@ -1657,7 +1669,7 @@ function ADD_EMAIL_NAV ($PAGES, $offset, $show_form, $colspan, $return=false) { $SEP = ''; $TOP = ''; if (!$show_form) { $TOP = " top2"; - $SEP = " "; + $SEP = " "; } $NAV = ''; @@ -1668,7 +1680,7 @@ function ADD_EMAIL_NAV ($PAGES, $offset, $show_form, $colspan, $return=false) { $NAV .= "-"; } else { // Open anchor tag and add base URL - $NAV .= "\n"); + //* DEBUG: */ print("SCRIPT=" . $script."
\n"); if (substr(strtolower($script), 0, 7) == 'http://') { // But only if http:// is in front! $script = substr($script, (strlen($url) + 7)); @@ -1737,7 +1749,7 @@ function extractHostnameFromUrl (&$script) { $script = substr($script, (strlen($url) + 8)); } - //* DEBUG: */ print("SCRIPT=".$script."
\n"); + //* DEBUG: */ print("SCRIPT=" . $script."
\n"); if (substr($script, 0, 1) == '/') $script = substr($script, 1); // Return host name @@ -1826,7 +1838,7 @@ function sendRawRequest ($host, $request) { } // END - if // Open connection - //* DEBUG: */ die("SCRIPT=".$script."
\n"); + //* DEBUG: */ die("SCRIPT=" . $script."
\n"); if ($useProxy === true) { // Connect to host through proxy connection $fp = @fsockopen(COMPILE_CODE(getConfig('proxy_host')), bigintval(getConfig('proxy_port')), $errno, $errdesc, 30); @@ -1856,7 +1868,7 @@ function sendRawRequest ($host, $request) { // Add last new-line $proxyTunnel .= getConfig('HTTP_EOL'); - //* DEBUG: */ print("proxyTunnel=
".$proxyTunnel."
"); + //* DEBUG: */ print("proxyTunnel=
" . $proxyTunnel."
"); // Write request fputs($fp, $proxyTunnel); @@ -1948,13 +1960,13 @@ function isUrlValid ($URL, $compile=true) { //* DEBUG: */ echo $URL."
"; // Compile some chars out... - if ($compile) $URL = compileUriCode($URL, false, false, false); + if ($compile === true) $URL = compileUriCode($URL, false, false, false); //* DEBUG: */ echo $URL."
"; // Check for the extension filter if (EXT_IS_ACTIVE('filter')) { // Use the extension's filter set - return FILTER_isUrlValid($URL, false); + return FILTER_VALIDATE_URL($URL, false); } // END - if // If not installed, perform a simple test. Just make it sure there is always a http:// or @@ -1971,8 +1983,8 @@ function generateMemberAdminActionLinks ($uid, $status = '') { $eval = "\$OUT = \"[ "; foreach ($TARGETS as $tar) { - $eval .= "
\n"; + $eval .= "\n"; if (($tar == "lock_user") && ($status == 'LOCKED')) { // Locked accounts shall be unlocked $eval .= "UNLOCK_USER"; @@ -2052,12 +2064,12 @@ function generateHash ($plainText, $salt = '') { $a = time() + getConfig('_ADD') - 1; // Generate SHA1 sum from modula of number and the prime number - $sha1 = sha1(($a % getConfig('_PRIME')).$server.getConfig('ENCRYPT_SEPERATOR').$keys.getConfig('ENCRYPT_SEPERATOR').$data.getConfig('ENCRYPT_SEPERATOR').getConfig('DATE_KEY').getConfig('ENCRYPT_SEPERATOR').$a); - //* DEBUG: */ echo "SHA1=".$sha1." (".strlen($sha1).")
"; + $sha1 = sha1(($a % getConfig('_PRIME')) . $server.getConfig('ENCRYPT_SEPERATOR') . $keys.getConfig('ENCRYPT_SEPERATOR') . $data.getConfig('ENCRYPT_SEPERATOR').getConfig('DATE_KEY').getConfig('ENCRYPT_SEPERATOR') . $a); + //* DEBUG: */ echo "SHA1=" . $sha1." (".strlen($sha1).")
"; $sha1 = scrambleString($sha1); - //* DEBUG: */ echo "Scrambled=".$sha1." (".strlen($sha1).")
"; + //* DEBUG: */ echo "Scrambled=" . $sha1." (".strlen($sha1).")
"; //* DEBUG: */ $sha1b = descrambleString($sha1); - //* DEBUG: */ echo "Descrambled=".$sha1b." (".strlen($sha1b).")
"; + //* DEBUG: */ echo "Descrambled=" . $sha1b." (".strlen($sha1b).")
"; // Generate the password salt string $salt = substr($sha1, 0, getConfig('salt_length')); @@ -2069,7 +2081,7 @@ function generateHash ($plainText, $salt = '') { } // Return hash - return $salt.sha1($salt.$plainText); + return $salt.sha1($salt . $plainText); } // Scramble a string @@ -2090,7 +2102,7 @@ function scrambleString($str) { } // Scramble string here - //* DEBUG: */ echo "***Original=".$str."***
"; + //* DEBUG: */ echo "***Original=" . $str."***
"; for ($idx = 0; $idx < strlen($str); $idx++) { // Get char on scrambled position $char = substr($str, $scrambleNums[$idx], 1); @@ -2100,7 +2112,7 @@ function scrambleString($str) { } // END - for // Return scrambled string - //* DEBUG: */ echo "***Scrambled=".$scrambled."***
"; + //* DEBUG: */ echo "***Scrambled=" . $scrambled."***
"; return $scrambled; } @@ -2117,14 +2129,14 @@ function descrambleString($str) { // Begin descrambling $orig = str_repeat(" ", 40); - //* DEBUG: */ echo "+++Scrambled=".$str."+++
"; + //* DEBUG: */ echo "+++Scrambled=" . $str."+++
"; for ($idx = 0; $idx < 40; $idx++) { $char = substr($str, $idx, 1); $orig = substr_replace($orig, $char, $scrambleNums[$idx], 1); } // END - for // Return scrambled string - //* DEBUG: */ echo "+++Original=".$orig."+++
"; + //* DEBUG: */ echo "+++Original=" . $orig."+++
"; return $orig; } @@ -2171,20 +2183,20 @@ function generatePassString ($passHash) { $mod = dechex(sqrt(($part2 - $part1) * getConfig('_PRIME') / pi())); } $mod = substr(round($mod), 0, 4); - $mod = str_repeat('0', 4-strlen($mod)).$mod; - //* DEBUG: */ echo "*".$start.'='.$mod."*
"; + $mod = str_repeat('0', 4-strlen($mod)) . $mod; + //* DEBUG: */ echo "*" . $start.'=' . $mod."*
"; $start += 4; $newHash .= $mod; } // END - for - //* DEBUG: */ print($passHash."
".$newHash." (".strlen($newHash).')'); + //* DEBUG: */ print($passHash."
" . $newHash." (".strlen($newHash).')'); $ret = generateHash($newHash, getConfig('master_salt')); //* DEBUG: */ print($ret."
\n"); } else { // Hash it simple - //* DEBUG: */ echo "--".$passHash."--
\n"; + //* DEBUG: */ echo "--" . $passHash."--
\n"; $ret = md5($passHash); - //* DEBUG: */ echo "++".$ret."++
\n"; + //* DEBUG: */ echo "++" . $ret."++
\n"; } // Return result @@ -2206,7 +2218,7 @@ function fixDeletedCookies ($cookies) { } // Output error messages in a fasioned way and die... -function app_die ($F, $L, $msg) { +function app_die ($F, $L, $message) { // Check if Script is already dieing and not let it kill itself another 1000 times if (!isset($GLOBALS['app_died'])) { // Make sure, that the script realy realy diese here and now @@ -2215,17 +2227,20 @@ function app_die ($F, $L, $msg) { // Load header loadIncludeOnce('inc/header.php'); - // Prepare message for output - $msg = sprintf(getMessage('MXCHANGE_HAS_DIED'), basename($F), $L, $msg); + // Rewrite message for output + $message = sprintf(getMessage('MXCHANGE_HAS_DIED'), basename($F), $L, $message); + + // Better log this message away + DEBUG_LOG($F, $L, $message); // Load the message template - LOAD_TEMPLATE('admin_settings_saved', false, $msg); + LOAD_TEMPLATE('admin_settings_saved', false, $message); // Load footer loadIncludeOnce('inc/footer.php'); } else { // Script tried to kill itself twice - debug_report_bug('Script wanted to kill itself more than once! Raw message=' . $msg . ', file/function=' . $F . ', line=' . $L); + debug_report_bug('Script wanted to kill itself more than once! Raw message=' . $message . ', file/function=' . $F . ', line=' . $L); } } @@ -2267,14 +2282,14 @@ function isBooleanConstantAndTrue ($constName) { // : Boolean // In cache? if (isset($GLOBALS['cache_array']['const'][$constName])) { // Use cache - //* DEBUG: */ print __FUNCTION__."(".__LINE__."): ".$constName."-CACHE!
\n"; + //* DEBUG: */ print __FUNCTION__."(".__LINE__."): " . $constName."-CACHE!
\n"; $res = ($GLOBALS['cache_array']['const'][$constName] === true); } else { // Check constant - //* DEBUG: */ print __FUNCTION__."(".__LINE__."): ".$constName."-RESOLVE!
\n"; + //* DEBUG: */ print __FUNCTION__."(".__LINE__."): " . $constName."-RESOLVE!
\n"; if (defined($constName)) { // Found! - //* DEBUG: */ print __FUNCTION__."(".__LINE__."): ".$constName."-FOUND!
\n"; + //* DEBUG: */ print __FUNCTION__."(".__LINE__."): " . $constName."-FOUND!
\n"; $res = (constant($constName) === true); } // END - if @@ -2314,7 +2329,7 @@ function getCurrentTheme() { // Fix it to default $ret = 'default'; } // END - if - } elseif ((!isInstalled()) && ((isInstalling()) || ($GLOBALS['output_mode'] == true)) && ((REQUEST_ISSET_GET('theme')) || (REQUEST_ISSET_POST('theme')))) { + } elseif ((!isInstalled()) && ((isInstalling()) || (getOutputMode() == true)) && ((REQUEST_ISSET_GET('theme')) || (REQUEST_ISSET_POST('theme')))) { // Prepare FQFN for checking $theme = sprintf("%stheme/%s/theme.php", constant('PATH'), REQUEST_GET('theme')); @@ -2383,6 +2398,12 @@ function getThemeId ($name) { // Generates an error code from given account status function generateErrorCodeFromUserStatus ($status) { + // @TODO The status should never be empty + if (empty($status)) { + // Something really bad happend here + debug_report_bug(__FUNCTION__ . ': status is empty.'); + } // END - if + // Default error code if unknown account status $errorCode = getCode('UNKNOWN_STATUS'); @@ -2405,7 +2426,7 @@ function generateErrorCodeFromUserStatus ($status) { // Function to search for the last modifified file function searchDirsRecursive ($dir, &$last_changed) { // Get dir as array - //* DEBUG: */ print __FUNCTION__."(".__LINE__."):dir=".$dir."
\n"; + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):dir=" . $dir."
\n"; // Does it match what we are looking for? (We skip a lot files already!) // RegexPattern to exclude ., .., .revision, .svn, debug.log or .cache in the filenames $excludePattern = '@(\.|\.\.|\.revision|\.svn|debug\.log|\.cache|config\.php)$@'; @@ -2423,12 +2444,12 @@ function searchDirsRecursive ($dir, &$last_changed) { // $FQFN is a directory so also crawl into this directory $newDir = $d; if (!empty($dir)) $newDir = $dir . '/'. $d; - //* DEBUG: */ print __FUNCTION__."(".__LINE__."):DESCENT: ".$newDir."
\n"; + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):DESCENT: " . $newDir."
\n"; searchDirsRecursive($newDir, $last_changed); } elseif (isFileReadable($FQFN)) { // $FQFN is a filename and no directory $time = filemtime($FQFN); - //* DEBUG: */ print __FUNCTION__."(".__LINE__."):File: ".$d." found. (".($last_changed['time'] - $time).")
\n"; + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):File: " . $d." found. (".($last_changed['time'] - $time).")
\n"; if ($last_changed['time'] < $time) { // This file is newer as the file before //* DEBUG: */ print __FUNCTION__."(".__LINE__.") - NEWER!
\n"; @@ -2446,25 +2467,37 @@ function getActualVersion ($type = 'Revision') { if (EXT_IS_ACTIVE('cache')) { // Check if REQUEST_GET('check_revision_data') is setted (switch for manually rewrite the .revision-File) - if (REQUEST_ISSET_GET('check_revision_data') && REQUEST_GET('check_revision_data') == 'yes') $new = true; - if (!isset($GLOBALS['cache_array']['revision'][$type]) - || count($GLOBALS['cache_array']['revision']) < 3 - || !$GLOBALS['cache_instance']->loadCacheFile('revision')) $new = true; + if (REQUEST_ISSET_GET('check_revision_data') && REQUEST_GET('check_revision_data') == 'yes') { + // Force rebuild by URL parameter + $new = true; + } elseif (( + !isset($GLOBALS['cache_array']['revision'][$type]) + ) || ( + count($GLOBALS['cache_array']['revision']) < 3 + ) || ( + !$GLOBALS['cache_instance']->loadCacheFile('revision') + )) { + // Out-dated cache + $new = true; + } // END - if // Is the cache file outdated/invalid? if ($new === true){ - $GLOBALS['cache_instance']->destroyCacheFile(); // @TODO isn't it better to do $GLOBALS['cache_instance']->destroyCacheFile('revision')? + // Destroy cache file + $GLOBALS['cache_instance']->destroyCacheFile(); // @TODO shouldn't do the unset and the reloading $GLOBALS['cache_instance']->destroyCacheFile() Or a new methode like forceCacheReload('revision')? unset($GLOBALS['cache_array']['revision']); // Reload load_cach-revison.php loadInclude('inc/loader/load_cache-revision.php'); + + // Abort here + return; } // END - if // Return found value return $GLOBALS['cache_array']['revision'][$type][0]; - } else { // Old Version without ext-cache active (deprecated ?) @@ -2473,7 +2506,7 @@ function getActualVersion ($type = 'Revision') { // Check if REQUEST_GET('check_revision_data') is setted (switch for manually rewrite the .revision-File) if ((REQUEST_ISSET_GET('check_revision_data')) && (REQUEST_GET('check_revision_data') == 'yes')) { - // Has changed! + // Forced rebuild of .revision file $new = true; } else { // Check for revision file @@ -2539,7 +2572,7 @@ function getArrayFromActualVersion () { // This foreach loops the $searchFor-Tags (array('Revision', 'Date', 'Tag', 'Author') --> could easaly extended in the future) foreach ($searchFor as $search) { // Searches for "$search-tag:VALUE$" or "$search-tag::VALUE$"(the stylish keywordversion ;-)) in the lates modified file - $res += preg_match('@\$'.$search.'(:|::) (.*) \$@U', $last_file, $t); + $res += preg_match('@\$' . $search.'(:|::) (.*) \$@U', $last_file, $t); // This trimms the search-result and puts it in the $akt_vers-return array if (isset($t[2])) $akt_vers[$search] = trim($t[2]); } // END - foreach @@ -2590,7 +2623,7 @@ function debug_get_printable_backtrace () { if (!isset($trace['file'])) $trace['file'] = __FUNCTION__; if (!isset($trace['line'])) $trace['line'] = __LINE__; if (!isset($trace['args'])) $trace['args'] = array(); - $backtrace .= "
  • ".basename($trace['file']).":".$trace['line'].", ".$trace['function'].'('.count($trace['args']).")
  • \n"; + $backtrace .= "
  • ".basename($trace['file']).":" . $trace['line'].", " . $trace['function'].'('.count($trace['args']).")
  • \n"; } // END - foreach // Close it @@ -2616,9 +2649,9 @@ function debug_report_bug ($message = '') { } // END - if // Add output - $debug .= "Please report this bug at
    bugs.mxchange.org and include the logfile from inc/cache/debug.log in your report (you cannot attach files!):
    ";
    +	$debug .= "Please report this bug at bugs.mxchange.org and include the logfile from inc/cache/debug.log in your report (you can now attach files):
    ";
     	$debug .= debug_get_printable_backtrace();
    -	$debug .= "
    \nRequest-URI: ".$_SERVER['REQUEST_URI']."
    \n"; + $debug .= "
    \nRequest-URI: " . $_SERVER['REQUEST_URI']."
    \n"; $debug .= "Thank you for finding bugs."; // And abort here @@ -2628,55 +2661,56 @@ function debug_report_bug ($message = '') { // Generates a ***weak*** seed (taken from de.php.net/mt_srand) function generateSeed () { - list($usec, $sec) = explode(" ", microtime()); - return ((float)$sec + (float)$usec); + list($usec, $sec) = explode(' ', microtime()); + $microTime = (((float)$sec + (float)$usec)) * 100000; + return $microTime; } // Converts a message code to a human-readable message function convertCodeToMessage ($code) { - $msg = ''; + $message = ''; switch ($code) { - case getCode('LOGOUT_DONE') : $msg = getMessage('LOGOUT_DONE'); break; - case getCode('LOGOUT_FAILED') : $msg = "{--LOGOUT_FAILED--}"; break; - case getCode('DATA_INVALID') : $msg = getMessage('MAIL_DATA_INVALID'); break; - case getCode('POSSIBLE_INVALID') : $msg = getMessage('MAIL_POSSIBLE_INVALID'); break; - case getCode('ACCOUNT_LOCKED') : $msg = getMessage('MEMBER_ACCOUNT_LOCKED_UNC'); break; - case getCode('USER_404') : $msg = getMessage('USER_NOT_FOUND'); break; - case getCode('STATS_404') : $msg = getMessage('MAIL_STATS_404'); break; - case getCode('ALREADY_CONFIRMED'): $msg = getMessage('MAIL_ALREADY_CONFIRMED'); break; + case getCode('LOGOUT_DONE') : $message = getMessage('LOGOUT_DONE'); break; + case getCode('LOGOUT_FAILED') : $message = "{--LOGOUT_FAILED--}"; break; + case getCode('DATA_INVALID') : $message = getMessage('MAIL_DATA_INVALID'); break; + case getCode('POSSIBLE_INVALID') : $message = getMessage('MAIL_POSSIBLE_INVALID'); break; + case getCode('ACCOUNT_LOCKED') : $message = getMessage('MEMBER_ACCOUNT_LOCKED_UNC'); break; + case getCode('USER_404') : $message = getMessage('USER_NOT_FOUND'); break; + case getCode('STATS_404') : $message = getMessage('MAIL_STATS_404'); break; + case getCode('ALREADY_CONFIRMED'): $message = getMessage('MAIL_ALREADY_CONFIRMED'); break; case getCode('ERROR_MAILID'): if (EXT_IS_ACTIVE($ext, true)) { - $msg = getMessage('ERROR_CONFIRMING_MAIL'); + $message = getMessage('ERROR_CONFIRMING_MAIL'); } else { - $msg = sprintf(getMessage('EXTENSION_PROBLEM_NOT_INSTALLED'), 'mailid'); + $message = sprintf(getMessage('EXTENSION_PROBLEM_NOT_INSTALLED'), 'mailid'); } break; case getCode('EXTENSION_PROBLEM'): if (REQUEST_ISSET_GET('ext')) { - $msg = generateExtensionInactiveMessage(REQUEST_GET('ext')); + $message = generateExtensionInactiveNotInstalledMessage(REQUEST_GET('ext')); } else { - $msg = getMessage('EXTENSION_PROBLEM_UNSET_EXT'); + $message = getMessage('EXTENSION_PROBLEM_UNSET_EXT'); } break; - case getCode('COOKIES_DISABLED') : $msg = getMessage('LOGIN_NO_COOKIES'); break; - case getCode('BEG_SAME_AS_OWN') : $msg = getMessage('BEG_SAME_UID_AS_OWN'); break; - case getCode('LOGIN_FAILED') : $msg = getMessage('LOGIN_FAILED_GENERAL'); break; - case getCode('MODULE_MEM_ONLY') : $msg = sprintf(getMessage('MODULE_MEM_ONLY'), REQUEST_GET('mod')); break; + case getCode('COOKIES_DISABLED') : $message = getMessage('LOGIN_NO_COOKIES'); break; + case getCode('BEG_SAME_AS_OWN') : $message = getMessage('BEG_SAME_UID_AS_OWN'); break; + case getCode('LOGIN_FAILED') : $message = getMessage('LOGIN_FAILED_GENERAL'); break; + case getCode('MODULE_MEM_ONLY') : $message = sprintf(getMessage('MODULE_MEM_ONLY'), REQUEST_GET('mod')); break; default: // Missing/invalid code - $msg = sprintf(getMessage('UNKNOWN_MAILID_CODE'), $code); + $message = sprintf(getMessage('UNKNOWN_MAILID_CODE'), $code); // Log it - DEBUG_LOG(__FUNCTION__, __LINE__, $msg); + DEBUG_LOG(__FUNCTION__, __LINE__, $message); break; } // END - switch // Return the message - return $msg; + return $message; } // Generate a "link" for the given admin id (aid) @@ -2694,7 +2728,7 @@ function generateAdminLink ($aid) { // Is the extension there? if (EXT_IS_ACTIVE('admins')) { // Admin found - $admin = "".$login.""; + $admin = "" . $login.""; } else { // Extension not found $admin = sprintf(getMessage('EXTENSION_PROBLEM_NOT_INSTALLED'), 'admins'); @@ -2712,19 +2746,19 @@ function generateAdminLink ($aid) { // Compile characters which are allowed in URLs function compileUriCode ($code, $simple=true) { // Compile constants - if (!$simple) $code = str_replace("{--", '".', str_replace("--}", '."', $code)); + if (!$simple) $code = str_replace('{--', '".', str_replace('--}', '."', $code)); // Compile QUOT and other non-HTML codes $code = str_replace('{DOT}', '.', - str_replace('{SLASH}', '/', - str_replace('{QUOT}', "'", - str_replace('{DOLLAR}', '$', - str_replace('{OPEN_ANCHOR}', '(', - str_replace('{CLOSE_ANCHOR}', ')', - str_replace('{OPEN_SQR}', '[', - str_replace('{CLOSE_SQR}', ']', - str_replace('{PER}', '%', - $code + str_replace('{SLASH}', '/', + str_replace('{QUOT}', "'", + str_replace('{DOLLAR}', '$', + str_replace('{OPEN_ANCHOR}', '(', + str_replace('{CLOSE_ANCHOR}', ')', + str_replace('{OPEN_SQR}', '[', + str_replace('{CLOSE_SQR}', ']', + str_replace('{PER}', '%', + $code ))))))))); // Return compiled code @@ -2734,7 +2768,7 @@ function compileUriCode ($code, $simple=true) { // Function taken from user comments on www.php.net / function eregi() function isUrlValidSimple ($url) { // Prepare URL - $url = strip_tags(str_replace("\\", '', compileUriCode(urldecode($url)))); + $url = strip_tags(str_replace("\\", '', COMPILE_CODE(urldecode($url)))); // Allows http and https $http = "(http|https)+(:\/\/)"; @@ -2751,44 +2785,42 @@ function isUrlValidSimple ($url) { // ... and the string after and including question character $getstring1 = "([\?/]([[:alnum:]][-\._%[:alnum:]]*(=)?([-\@\._:%[:alnum:]])+)(&([[:alnum:]]([-_%[:alnum:]])*(=)?([-\@\[\._:%[:alnum:]])+(\])*))*)?"; // Pattern for URLs like http://url/dir/doc.html?var=value - $pattern['d1dpg1'] = $http.$domain1.$dir.$page.$getstring1; - $pattern['d2dpg1'] = $http.$domain2.$dir.$page.$getstring1; - $pattern['ipdpg1'] = $http.$ip.$dir.$page.$getstring1; + $pattern['d1dpg1'] = $http . $domain1 . $dir . $page . $getstring1; + $pattern['d2dpg1'] = $http . $domain2 . $dir . $page . $getstring1; + $pattern['ipdpg1'] = $http . $ip . $dir . $page . $getstring1; // Pattern for URLs like http://url/dir/?var=value - $pattern['d1dg1'] = $http.$domain1.$dir.'/'.$getstring1; - $pattern['d2dg1'] = $http.$domain2.$dir.'/'.$getstring1; - $pattern['ipdg1'] = $http.$ip.$dir.'/'.$getstring1; + $pattern['d1dg1'] = $http . $domain1 . $dir.'/' . $getstring1; + $pattern['d2dg1'] = $http . $domain2 . $dir.'/' . $getstring1; + $pattern['ipdg1'] = $http . $ip . $dir.'/' . $getstring1; // Pattern for URLs like http://url/dir/page.ext - $pattern['d1dp'] = $http.$domain1.$dir.$page; - $pattern['d1dp'] = $http.$domain2.$dir.$page; - $pattern['ipdp'] = $http.$ip.$dir.$page; + $pattern['d1dp'] = $http . $domain1 . $dir . $page; + $pattern['d1dp'] = $http . $domain2 . $dir . $page; + $pattern['ipdp'] = $http . $ip . $dir . $page; // Pattern for URLs like http://url/dir - $pattern['d1d'] = $http.$domain1.$dir; - $pattern['d2d'] = $http.$domain2.$dir; - $pattern['ipd'] = $http.$ip.$dir; + $pattern['d1d'] = $http . $domain1 . $dir; + $pattern['d2d'] = $http . $domain2 . $dir; + $pattern['ipd'] = $http . $ip . $dir; // Pattern for URLs like http://url/?var=value - $pattern['d1g1'] = $http.$domain1.'/'.$getstring1; - $pattern['d2g1'] = $http.$domain2.'/'.$getstring1; - $pattern['ipg1'] = $http.$ip.'/'.$getstring1; + $pattern['d1g1'] = $http . $domain1 . '/' . $getstring1; + $pattern['d2g1'] = $http . $domain2 . '/' . $getstring1; + $pattern['ipg1'] = $http . $ip . '/' . $getstring1; // Pattern for URLs like http://url?var=value - $pattern['d1g12'] = $http.$domain1.$getstring1; - $pattern['d2g12'] = $http.$domain2.$getstring1; - $pattern['ipg12'] = $http.$ip.$getstring1; + $pattern['d1g12'] = $http . $domain1 . $getstring1; + $pattern['d2g12'] = $http . $domain2 . $getstring1; + $pattern['ipg12'] = $http . $ip . $getstring1; // Test all patterns $reg = false; - foreach ($pattern as $key=>$pat) { + foreach ($pattern as $key => $pat) { // Debug regex? - if (defined('DEBUG_REGEX')) { - $pat = str_replace("[:alnum:]", "0-9a-zA-Z", $pat); - $pat = str_replace("[:alpha:]", "a-zA-Z", $pat); - $pat = str_replace("[:digit:]", "0-9", $pat); - $pat = str_replace('.', "\.", $pat); - $pat = str_replace("@", "\@", $pat); - echo $key."= ".$pat."
    "; - } + if (isDebugRegExpressionEnabled()) { + // @TODO Are these convertions still required? + $pat = str_replace('.', "\.", $pat); + $pat = str_replace('@', "\@", $pat); + echo $key."= " . $pat . "
    "; + } // END - if // Check if expression matches - $reg = ($reg || preg_match(("^".$pat."^"), $url)); + $reg = ($reg || preg_match(('^' . $pat.'^'), $url)); // Does it match? if ($reg === true) break; @@ -2876,8 +2908,8 @@ function sendAdminNotification ($subject, $templateName, $content=array(), $uid SEND_ADMIN_EMAILS_PRO($subject, $templateName, $content, $uid); } else { // Send out out-dated way - $msg = LOAD_EMAIL_TEMPLATE($templateName, $content, $uid); - SEND_ADMIN_EMAILS($subject, $msg); + $message = LOAD_EMAIL_TEMPLATE($templateName, $content, $uid); + SEND_ADMIN_EMAILS($subject, $message); } } @@ -2890,7 +2922,7 @@ function DEBUG_LOG ($funcFile, $line, $message, $force=true) { // Log this message away $fp = fopen(constant('PATH')."inc/cache/debug.log", 'a') or app_die(__FUNCTION__, __LINE__, "Cannot write logfile debug.log!"); - fwrite($fp, date("d.m.Y|H:i:s", time())."|".$GLOBALS['module']."|".basename($funcFile)."|".$line."|".strip_tags($message)."\n"); + fwrite($fp, date("d.m.Y|H:i:s", time())."|" . getModule()."|".basename($funcFile)."|" . $line."|".strip_tags($message)."\n"); fclose($fp); } // END - if } @@ -2992,7 +3024,7 @@ function convertSelectionsToTimestamp (&$POST, &$DATA, &$id, &$skip) { // 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 @@ -3036,14 +3068,14 @@ function HANDLE_LOGIN_FAILTURES ($accessLevel) { $OUT = ''; // Is the session data set? - if ((isSessionVariableSet('mxchange_'.$accessLevel.'_failures')) && (isSessionVariableSet('mxchange_'.$accessLevel.'_last_fail'))) { + if ((isSessionVariableSet('mxchange_' . $accessLevel.'_failures')) && (isSessionVariableSet('mxchange_' . $accessLevel.'_last_fail'))) { // Ignore zero values - if (getSession('mxchange_'.$accessLevel.'_failures') > 0) { + if (getSession('mxchange_' . $accessLevel.'_failures') > 0) { // Non-guest has login failures found, get both data and prepare it for template //* DEBUG: */ print __FUNCTION__."(".__LINE__."):accessLevel={$accessLevel}
    \n"; $content = array( - 'login_failures' => getSession('mxchange_'.$accessLevel.'_failures'), - 'last_failure' => generateDateTime(getSession('mxchange_'.$accessLevel.'_last_fail'), '2') + 'login_failures' => getSession('mxchange_' . $accessLevel.'_failures'), + 'last_failure' => generateDateTime(getSession('mxchange_' . $accessLevel.'_last_fail'), '2') ); // Load template @@ -3051,8 +3083,8 @@ function HANDLE_LOGIN_FAILTURES ($accessLevel) { } // END - if // Reset session data - setSession('mxchange_'.$accessLevel.'_failures', ''); - setSession('mxchange_'.$accessLevel.'_last_fail', ''); + setSession('mxchange_' . $accessLevel.'_failures', ''); + setSession('mxchange_' . $accessLevel.'_last_fail', ''); } // END - if // Return rendered content @@ -3168,18 +3200,18 @@ function addNewBonusMail ($data, $mode = '', $output=true) { // Determines referal id and sets it function DETERMINE_REFID () { // Check if refid is set - if ((!empty($_GET['user'])) && (basename($_SERVER['PHP_SELF']) == "click.php")) { + if ((REQUEST_ISSET_GET('user')) && (basename($_SERVER['PHP_SELF']) == 'click.php')) { // The variable user comes from the click-counter script click.php and we only accept this here - $GLOBALS['refid'] = bigintval($_GET['user']); - } elseif (!empty($_POST['refid'])) { + $GLOBALS['refid'] = bigintval(REQUEST_GET('user')); + } elseif (REQUEST_ISSET_POST('refid')) { // Get referal id from variable refid (so I hope this makes my script more compatible to other scripts) - $GLOBALS['refid'] = SQL_ESCAPE(strip_tags($_POST['refid'])); - } elseif (!empty($_GET['refid'])) { + $GLOBALS['refid'] = strip_tags(REQUEST_POST('refid')); + } elseif (REQUEST_ISSET_GET('refid')) { // Get referal id from variable refid (so I hope this makes my script more compatible to other scripts) - $GLOBALS['refid'] = SQL_ESCAPE(strip_tags($_GET['refid'])); - } elseif (!empty($_GET['ref'])) { + $GLOBALS['refid'] = strip_tags(REQUEST_GET('refid')); + } elseif (REQUEST_ISSET_GET('ref')) { // Set refid=ref (the referal link uses such variable) - $GLOBALS['refid'] = SQL_ESCAPE(strip_tags($_GET['ref'])); + $GLOBALS['refid'] = strip_tags(REQUEST_GET('ref')); } elseif ((isSessionVariableSet('refid')) && (getSession('refid') != 0)) { // Set session refid als global $GLOBALS['refid'] = bigintval(getSession('refid')); @@ -3259,17 +3291,17 @@ function isUserIdSet () { // Handle message codes from URL function handleCodeMessage () { if (REQUEST_ISSET_GET('msg')) { - // Default extension is "unknown" + // Default extension is 'unknown' $ext = 'unknown'; // Is extension given? if (REQUEST_ISSET_GET('ext')) $ext = REQUEST_GET('ext'); // Convert the 'msg' parameter from URL to a human-readable message - $msg = convertCodeToMessage(REQUEST_GET('msg')); + $message = convertCodeToMessage(REQUEST_GET('msg')); // Load message template - LOAD_TEMPLATE('message', false, $msg); + LOAD_TEMPLATE('message', false, $message); } // END - if } @@ -3296,24 +3328,71 @@ function isExtraTitleSet () { } // Generates a 'extension foo inactive' message -function generateExtensionInactiveMessage ($ext) { +function generateExtensionInactiveMessage ($ext_name) { // Is the extension empty? - if (empty($ext)) { + if (empty($ext_name)) { // This should not happen trigger_error(__FUNCTION__ . ': Parameter ext is empty. This should not happen.'); } // END - if // Default message - $msg = sprintf(getMessage('EXTENSION_PROBLEM_EXT_INACTIVE'), $ext); + $message = sprintf(getMessage('EXTENSION_PROBLEM_EXT_INACTIVE'), $ext_name); // Is an admin logged in? if (IS_ADMIN()) { // Then output admin message - $msg = sprintf(getMessage('ADMIN_EXTENSION_PROBLEM_EXT_INACTIVE'), $ext); + $message = sprintf(getMessage('ADMIN_EXTENSION_PROBLEM_EXT_INACTIVE'), $ext_name); } // END - if // Return prepared message - return $msg; + return $message; +} + +// Generates a 'extension foo not installed' message +function generateExtensionNotInstalledMessage ($ext_name) { + // Is the extension empty? + if (empty($ext_name)) { + // This should not happen + trigger_error(__FUNCTION__ . ': Parameter ext is empty. This should not happen.'); + } // END - if + + // Default message + $message = sprintf(getMessage('EXTENSION_PROBLEM_EXT_NOT_INSTALLED'), $ext_name); + + // Is an admin logged in? + if (IS_ADMIN()) { + // Then output admin message + $message = sprintf(getMessage('ADMIN_EXTENSION_PROBLEM_EXT_NOT_INSTALLED'), $ext_name); + } // END - if + + // Return prepared message + return $message; +} + +// Generates a message depending on if the extension is not installed or not +// just activated +function generateExtensionInactiveNotInstalledMessage ($ext_name) { + // Init message + $message = ''; + + // Is the extension not installed or just deactivated? + switch (isExtensionInstalled($ext_name)) { + case true; // Deactivated! + $message = generateExtensionInactiveMessage($ext_name); + break; + + case false; // Not installed! + $message = generateExtensionNotInstalledMessage($ext_name); + break; + + default: // Should not happen! + DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Invalid state of extension %s detected.", $ext_name)); + $message = sprintf("Invalid state of extension %s detected.", $ext_name); + break; + } // END - switch + + // Return the message + return $message; } //////////////////////////////////////////////////