X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Ffunctions.php;h=d96e2dbf60f3bc90cae02d3b6edc12a32aaa5c70;hb=d480b3a8bc2a5c4654067c732228490e448a6c8a;hp=6d414a53865611bdec27ee2af04646c29c66fff6;hpb=d8148e3f1f3a6762b2e786dbe99ada269dcf2ea0;p=mailer.git diff --git a/inc/functions.php b/inc/functions.php index 6d414a5386..d96e2dbf60 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -10,7 +10,12 @@ * -------------------------------------------------------------------- * * Kurzbeschreibung : Viele Nicht-MySQL-Funktionen (auch Dateizugriff) * * -------------------------------------------------------------------- * - * * + * $Revision:: $ * + * $Date:: $ * + * $Tag:: 0.2.1-FINAL $ * + * $Author:: $ * + * Needs to be in all Files and every File needs "svn propset * + * svn:keywords Date Revision" (autoprobset!) at least!!!!!! * * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2008 by Roland Haeder * * For more information visit: http://www.mxchange.org * @@ -30,35 +35,12 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * * MA 02110-1301 USA * ************************************************************************/ - // Some security stuff... if (!defined('__SECURITY')) { $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4)."/security.php"; require($INC); } -// Check if our config file is writeable or not -function IS_INC_WRITEABLE($inc) { - // Generate FQFN - $fqfn = sprintf("%sinc/%s.php", constant('PATH'), $inc); - - // Abort by simple test - if ((FILE_READABLE($fqfn)) && (!is_writeable($fqfn))) { - return false; - } // END - if - - // Test if we can append data - $fp = @fopen($fqfn, 'a'); - if ($inc == "dummy") { - // Remove dummy file - fclose($fp); - return unlink($fqfn); - } else { - // Close all other files - return fclose($fp); - } -} - // Output HTML code directly or "render" it. You addionally switch the new-line character off function OUTPUT_HTML ($HTML, $newLine = true) { // Some global variables @@ -88,7 +70,7 @@ function OUTPUT_HTML ($HTML, $newLine = true) { case "direct": // If we are switching from render to direct output rendered code - if ((!empty($OUTPUT)) && (constant('_OB_CACHING') != "on")) { OUTPUT_RAW($OUTPUT); $OUTPUT = ""; } + if ((!empty($OUTPUT)) && (constant('_OB_CACHING') != "on")) { OUTPUT_RAW($OUTPUT); $OUTPUT = ''; } // The same as above... ^ OUTPUT_RAW($HTML); @@ -98,10 +80,10 @@ function OUTPUT_HTML ($HTML, $newLine = true) { default: // Huh, something goes wrong or maybe you have edited config.php ??? DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Invalid renderer %s detected.", constant('OUTPUT_MODE'))); - mxchange_die("{--FATAL_ERROR--}: {--LANG_NO_RENDER_DIRECT--}"); + app_die(__FUNCTION__, __LINE__, "{--FATAL_ERROR--}: {--LANG_NO_RENDER_DIRECT--}"); break; } - } elseif ((constant('_OB_CACHING') == "on") && ($GLOBALS['footer_sent'] == 1)) { + } elseif ((constant('_OB_CACHING') == "on") && (isset($GLOBALS['footer_sent'])) && ($GLOBALS['footer_sent'] == 1)) { // Headers already sent? if (headers_sent()) { // Log this error @@ -114,8 +96,10 @@ function OUTPUT_HTML ($HTML, $newLine = true) { // Output cached HTML code $OUTPUT = ob_get_contents(); - // Clear output buffer for later output - clearOutputBuffer(); + // Clear output buffer for later output if output is found + if (!empty($OUTPUT)) { + clearOutputBuffer(); + } // END - if // Send HTTP header header("HTTP/1.1 200"); @@ -130,22 +114,22 @@ function OUTPUT_HTML ($HTML, $newLine = true) { header("Pragma: no-cache"); // HTTP/1.0 header("Connection: Close"); - // Extension "rewrite" installed? - if ((EXT_IS_ACTIVE("rewrite")) && ($GLOBALS['output_mode'] != "1") && ($GLOBALS['output_mode'] != "-1")) { + // Extension 'rewrite' installed? + if ((EXT_IS_ACTIVE('rewrite')) && ($GLOBALS['output_mode'] != "1") && ($GLOBALS['output_mode'] != "-1")) { $OUTPUT = REWRITE_LINKS($OUTPUT); } // END - if // Compile and run finished rendered HTML code while (strpos($OUTPUT, '{!') > 0) { // Prepare the content and eval() it... - $newContent = ""; - $eval = "\$newContent = \"".COMPILE_CODE(SQL_ESCAPE($OUTPUT))."\";"; - @eval($eval); + $newContent = ''; + $eval = "\$newContent = \"".COMPILE_CODE(smartAddSlashes($OUTPUT))."\";"; + eval($eval); // Was that eval okay? if (empty($newContent)) { // Something went wrong! - mxchange_die("Evaluation error:
".htmlentities($eval)."
"); + app_die(__FUNCTION__, __LINE__, "Evaluation error:
".htmlentities($eval)."
"); } // END - if $OUTPUT = $newContent; } // END - while @@ -154,13 +138,13 @@ function OUTPUT_HTML ($HTML, $newLine = true) { OUTPUT_RAW($OUTPUT); } elseif ((constant('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')) && ($GLOBALS['output_mode'] != "1") && ($GLOBALS['output_mode'] != "-1")) { $OUTPUT = REWRITE_LINKS($OUTPUT); } // END - if // Compile and run finished rendered HTML code while (strpos($OUTPUT, '{!') > 0) { - $eval = "\$OUTPUT = \"".COMPILE_CODE(SQL_ESCAPE($OUTPUT))."\";"; + $eval = "\$OUTPUT = \"".COMPILE_CODE(smartAddSlashes($OUTPUT))."\";"; eval($eval); } // END - while @@ -186,8 +170,14 @@ function initFatalMessages () { $GLOBALS['fatal_messages'] = array(); } +// Getter for whole fatal error messages +function getFatalArray () { + return $GLOBALS['fatal_messages']; +} + // Add a fatal error message to the queue array -function addFatalMessage ($message, $extra="") { +function addFatalMessage ($F, $L, $message, $extra='') { + debug_report_bug($message); if (is_array($extra)) { // Multiple extras for a message with masks $message = call_user_func_array('sprintf', $extra); @@ -200,7 +190,7 @@ function addFatalMessage ($message, $extra="") { $GLOBALS['fatal_messages'][] = $message; // Log fatal messages away - DEBUG_LOG(__FUNCTION__, __LINE__, " message={$message}"); + DEBUG_LOG($F, $L, " message={$message}"); } // Getter for total fatal message count @@ -221,7 +211,10 @@ 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()) { // Add more variables which you want to use in your template files - global $DATA, $_CONFIG, $username; + global $DATA, $username; + + // Get whole config array + $_CONFIG = getConfigArray(); // Make all template names lowercase $template = strtolower($template); @@ -235,14 +228,14 @@ function LOAD_TEMPLATE ($template, $return=false, $content=array()) { $HTTP_USER_AGENT = GET_USER_AGENT(); // Init some data - $ret = ""; + $ret = ''; if (empty($GLOBALS['refid'])) $GLOBALS['refid'] = 0; // @DEPRECATED Try to rewrite the if() condition if ($template == "member_support_form") { // Support request of a member $result = SQL_QUERY_ESC("SELECT userid, gender, surname, family, email FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1", - array($GLOBALS['userid']), __FILE__, __LINE__); + array(getUserId()), __FUNCTION__, __LINE__); // Is content an array? if (is_array($content)) { @@ -270,47 +263,47 @@ function LOAD_TEMPLATE ($template, $return=false, $content=array()) { $date_time = MAKE_DATETIME(time(), "1"); // Base directory - $BASE = sprintf("%stemplates/%s/html/", constant('PATH'), GET_LANGUAGE()); - $MODE = ""; + $basePath = sprintf("%stemplates/%s/html/", constant('PATH'), GET_LANGUAGE()); + $mode = ''; // Check for admin/guest/member templates if (strpos($template, "admin_") > -1) { // Admin template found - $MODE = "admin/"; + $mode = "admin/"; } elseif (strpos($template, "guest_") > -1) { // Guest template found - $MODE = "guest/"; + $mode = "guest/"; } elseif (strpos($template, "member_") > -1) { // Member template found - $MODE = "member/"; + $mode = "member/"; } elseif (strpos($template, "install_") > -1) { // Installation template found - $MODE = "install/"; + $mode = "install/"; } elseif (strpos($template, "ext_") > -1) { // Extension template found - $MODE = "ext/"; + $mode = "ext/"; } elseif (strpos($template, "la_") > -1) { // "Logical-area" template found - $MODE = "la/"; + $mode = "la/"; } else { // Test for extension $test = substr($template, 0, strpos($template, "_")); if (EXT_IS_ACTIVE($test)) { // Set extra path to extension's name - $MODE = $test."/"; + $mode = $test."/"; } } //////////////////////// // Generate file name // //////////////////////// - $FQFN = $BASE.$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 ((!empty($GLOBALS['what'])) && ((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", - $BASE, - $MODE, + $basePath, + $mode, $template, SQL_ESCAPE($GLOBALS['what']) ); @@ -325,7 +318,7 @@ function LOAD_TEMPLATE ($template, $return=false, $content=array()) { // Does the special template exists? if (!FILE_READABLE($FQFN)) { // Reset to default template - $FQFN = $BASE.$template.".tpl"; + $FQFN = $basePath.$template.".tpl"; } // END - if // Now does the final template exists? @@ -337,10 +330,10 @@ function LOAD_TEMPLATE ($template, $return=false, $content=array()) { while (strpos($tmpl_file, "'") !== false) { $tmpl_file = str_replace("'", '{QUOT}', $tmpl_file); } // Do we have to compile the code? - $ret = ""; + $ret = ''; if ((strpos($tmpl_file, "\$") !== false) || (strpos($tmpl_file, '{--') !== false) || (strpos($tmpl_file, '--}') > 0)) { // Okay, compile it! - $tmpl_file = "\$ret=\"".COMPILE_CODE(SQL_ESCAPE($tmpl_file))."\";"; + $tmpl_file = "\$ret=\"".COMPILE_CODE(smartAddSlashes($tmpl_file))."\";"; eval($tmpl_file); } else { // Simply return loaded code @@ -349,7 +342,7 @@ function LOAD_TEMPLATE ($template, $return=false, $content=array()) { // Add surrounding HTML comments to help finding bugs faster $ret = "\n".$ret."\n"; - } elseif ((IS_ADMIN()) || ((isBooleanConstantAndTrue('mxchange_installing')) && (!isBooleanConstantAndTrue('mxchange_installed')))) { + } elseif ((IS_ADMIN()) || ((isInstalling()) && (!isInstalled()))) { // Only admins shall see this warning or when installation mode is active $ret = "
".TEMPLATE_404."
(".basename($FQFN).")
@@ -368,116 +361,117 @@ function LOAD_TEMPLATE ($template, $return=false, $content=array()) { // Do we have some content to output or return? if (!empty($ret)) { // Not empty so let's put it out! ;) - if ($return) { + if ($return === true) { // Return the HTML code return $ret; } else { // Output direct OUTPUT_HTML($ret); } - } elseif (isBooleanConstantAndTrue('DEBUG_MODE')) { + } elseif (isDebugModeEnabled()) { // Warning, empty output! return "E:".$template."
\n"; } } // Send mail out to an email address -function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML = "N", $FROM = "") { - //* DEBUG: */ print __FUNCTION__."(".__LINE__."):TO={$TO},SUBJECT={$SUBJECT}
\n"; +function SEND_EMAIL($toEmail, $subject, $message, $HTML = "N", $mailHeader = "") { + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):TO={$toEmail},SUBJECT={$subject}
\n"; // Compile subject line (for POINTS constant etc.) - $eval = "\$SUBJECT = decodeEntities(\"".COMPILE_CODE(SQL_ESCAPE($SUBJECT))."\");"; + $eval = "\$subject = decodeEntities(\"".COMPILE_CODE(smartAddSlashes($subject))."\");"; eval($eval); // Set from header - if ((!eregi("@", $TO)) && ($TO > 0)) { + if ((!eregi("@", $toEmail)) && ($toEmail > 0)) { // Value detected, is the message extension installed? if (EXT_IS_ACTIVE("msg")) { - ADD_MESSAGE_TO_BOX($TO, $SUBJECT, $MSG, $HTML); + ADD_MESSAGE_TO_BOX($toEmail, $subject, $message, $HTML); return; } else { // Load email address - $result_email = SQL_QUERY_ESC("SELECT email FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1", array(bigintval($TO)), __FILE__, __LINE__); + $result_email = SQL_QUERY_ESC("SELECT email FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1", array(bigintval($toEmail)), __FUNCTION__, __LINE__); //* DEBUG: */ print __FUNCTION__."(".__LINE__."):numRows=".SQL_NUMROWS($result_email)."
\n"; // Does the user exist? if (SQL_NUMROWS($result_email)) { // Load email address - list($TO) = SQL_FETCHROW($result_email); + list($toEmail) = SQL_FETCHROW($result_email); } else { // Set webmaster - $TO = constant('WEBMASTER'); + $toEmail = constant('WEBMASTER'); } // Free result SQL_FREERESULT($result_email); } - } elseif ("$TO" == "0") { + } elseif ("$toEmail" == "0") { // Is the webmaster! - $TO = constant('WEBMASTER'); + $toEmail = constant('WEBMASTER'); } - //* DEBUG: */ print __FUNCTION__."(".__LINE__."):TO={$TO}
\n"; + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):TO={$toEmail}
\n"; // Check for PHPMailer or debug-mode if (!CHECK_PHPMAILER_USAGE()) { // Not in PHPMailer-Mode - if (empty($FROM)) { + if (empty($mailHeader)) { // Load email header template - $FROM = LOAD_EMAIL_TEMPLATE("header"); + $mailHeader = LOAD_EMAIL_TEMPLATE("header"); } else { // Append header - $FROM .= LOAD_EMAIL_TEMPLATE("header"); + $mailHeader .= LOAD_EMAIL_TEMPLATE("header"); } - } elseif (isBooleanConstantAndTrue('DEBUG_MODE')) { - if (empty($FROM)) { + } elseif (isDebugModeEnabled()) { + if (empty($mailHeader)) { // Load email header template - $FROM = LOAD_EMAIL_TEMPLATE("header"); + $mailHeader = LOAD_EMAIL_TEMPLATE("header"); } else { // Append header - $FROM .= LOAD_EMAIL_TEMPLATE("header"); + $mailHeader .= LOAD_EMAIL_TEMPLATE("header"); } } // Compile "TO" - $eval = "\$TO = \"".COMPILE_CODE(SQL_ESCAPE($TO))."\";"; + $eval = "\$toEmail = \"".COMPILE_CODE(smartAddSlashes($toEmail))."\";"; eval($eval); // Compile "MSG" - $eval = "\$MSG = \"".COMPILE_CODE(SQL_ESCAPE($MSG))."\";"; + $eval = "\$message = \"".COMPILE_CODE(smartAddSlashes($message))."\";"; eval($eval); // Fix HTML parameter (default is no!) if (empty($HTML)) $HTML = "N"; - if (isBooleanConstantAndTrue('DEBUG_MODE')) { + if (isDebugModeEnabled()) { // In debug mode we want to display the mail instead of sending it away so we can debug this part print("
-".htmlentities(trim($FROM))."
-To      : ".$TO."
-Subject : ".$SUBJECT."
-Message : ".$MSG."
+".htmlentities(trim($mailHeader))."
+To      : ".$toEmail."
+Subject : ".$subject."
+Message : ".$message."
 
\n"); - } elseif (($HTML == "Y") && (EXT_IS_ACTIVE("html_mail"))) { + } elseif (($HTML == 'Y') && (EXT_IS_ACTIVE('html_mail'))) { // Send mail as HTML away - SEND_HTML_EMAIL($TO, $SUBJECT, $MSG, $FROM); - } elseif (!empty($TO)) { + SEND_HTML_EMAIL($toEmail, $subject, $message, $mailHeader); + } elseif (!empty($toEmail)) { // Send Mail away - SEND_RAW_EMAIL($TO, $SUBJECT, $MSG, $FROM); - } elseif ($HTML == "N") { + SEND_RAW_EMAIL($toEmail, $subject, $message, $mailHeader); + } elseif ($HTML == 'N') { // Problem found! - SEND_RAW_EMAIL(constant('WEBMASTER'), "[PROBLEM:]".$SUBJECT, $MSG, $FROM); + SEND_RAW_EMAIL(constant('WEBMASTER'), "[PROBLEM:]".$subject, $message, $mailHeader); } } // Check if legacy or PHPMailer command +// @TODO Rewrite this to an extension 'smtp' // @private function CHECK_PHPMAILER_USAGE() { - return ((defined('SMTP_HOSTNAME')) && (defined('SMTP_USER')) && (defined('SMTP_PASSWORD')) && (SMTP_HOSTNAME != "") && (SMTP_USER != "")); + return ((defined('SMTP_HOSTNAME')) && (defined('SMTP_USER')) && (defined('SMTP_PASSWORD')) && (constant('SMTP_HOSTNAME') != "") && (constant('SMTP_USER') != "")); } /* * Send out a raw email with PHPMailer class or legacy mail() command */ -function SEND_RAW_EMAIL ($to, $subject, $msg, $from) { +function SEND_RAW_EMAIL ($toEmail, $subject, $msg, $from) { // Shall we use PHPMailer class or legacy mode? if (CHECK_PHPMAILER_USAGE()) { // Use PHPMailer class with SMTP enabled @@ -501,7 +495,7 @@ function SEND_RAW_EMAIL ($to, $subject, $msg, $from) { } $mail->FromName = constant('MAIN_TITLE'); $mail->Subject = $subject; - if ((EXT_IS_ACTIVE("html_mail")) && (strip_tags($msg) != $msg)) { + if ((EXT_IS_ACTIVE('html_mail')) && (strip_tags($msg) != $msg)) { $mail->Body = $msg; $mail->AltBody = "Your mail program required HTML support to read this mail!"; $mail->WordWrap = 70; @@ -509,14 +503,14 @@ function SEND_RAW_EMAIL ($to, $subject, $msg, $from) { } else { $mail->Body = decodeEntities($msg); } - $mail->AddAddress($to, ""); + $mail->AddAddress($toEmail, ''); $mail->AddReplyTo(constant('WEBMASTER'), constant('MAIN_TITLE')); $mail->AddCustomHeader("Errors-To:".constant('WEBMASTER')); $mail->AddCustomHeader("X-Loop:".constant('WEBMASTER')); $mail->Send(); } else { // Use legacy mail() command - @mail($to, $subject, decodeEntities($msg), $from); + @mail($toEmail, $subject, decodeEntities($msg), $from); } } // @@ -530,9 +524,9 @@ function GEN_PASS ($LEN = 0) { $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 = ""; + $PASS = ''; for ($i = 0; $i < $LEN; $i++) { - $PASS .= $ABC[mt_rand(0, sizeof($ABC) -1)]; + $PASS .= $ABC[mt_rand(0, count($ABC) -1)]; } // END - for // When the size is below 40 we can also add additional security by scrambling it @@ -627,7 +621,7 @@ function DEREFERER ($URL) { // Don't de-refer our own links! if (substr($URL, 0, strlen(URL)) != URL) { // De-refer this link - $URL = "modules.php?module=loader&url=".encodeString(compileUriCode($URL)); + $URL = 'modules.php?module=loader&url=' . encodeString(compileUriCode($URL)); } // END - if // Return link @@ -637,13 +631,13 @@ function DEREFERER ($URL) { // Translate Uni*-like gender to human-readable function TRANSLATE_GENDER ($gender) { // Default - $ret = "!{$gender}!"; + $ret = '!' . $gender . '!'; // Male/female or company? switch ($gender) { - case "M": $ret = getMessage('GENDER_M'); break; - case "F": $ret = getMessage('GENDER_F'); break; - case "C": $ret = getMessage('GENDER_C'); break; + case 'M': $ret = getMessage('GENDER_M'); break; + case 'F': $ret = getMessage('GENDER_F'); break; + case 'C': $ret = getMessage('GENDER_C'); break; default: // Log unknown gender DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Unknown gender %s detected.", $gender)); @@ -657,8 +651,7 @@ function TRANSLATE_GENDER ($gender) { // function FRAMETESTER ($URL) { // Prepare frametester URL - $frametesterUrl = sprintf("%s/modules.php?module=frametester&url=%s", - URL, + $frametesterUrl = sprintf("{!URL!}/modules.php?module=frametester&url=%s", encodeString(compileUriCode($URL)) ); return $frametesterUrl; @@ -668,34 +661,36 @@ function FRAMETESTER ($URL) { function SELECTION_COUNT ($array) { $ret = 0; if (is_array($array)) { - foreach ($array as $key => $sel) { - if (!empty($sel)) $ret++; + foreach ($array as $key => $selected) { + if (!empty($selected)) $ret++; } } return $ret; } + // function IMG_CODE ($code, $type, $DATA, $uid) { - return "\"Code\""; + return 'Code'; } + // function TRANSLATE_STATUS ($status) { switch ($status) { - case "UNCONFIRMED": - case "CONFIRMED": - case "LOCKED": + case 'UNCONFIRMED': + case 'CONFIRMED': + case 'LOCKED': $ret = getMessage(sprintf("ACCOUNT_%s", $status)); break; - case "": + case '': case null: $ret = getMessage('ACCOUNT_DELETED'); break; default: DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Unknown status %s detected.", $status)); - $ret = sprintf(getMessage('UNKNOWN_STATUS"'), $status); + $ret = sprintf(getMessage('UNKNOWN_STATUS'), $status); break; } @@ -708,7 +703,7 @@ function GET_LANGUAGE() { $ret = constant('DEFAULT_LANG'); // Init variable - $lang = ""; + $lang = ''; // Is the variable set if (REQUEST_ISSET_GET(('mx_lang'))) { @@ -719,7 +714,7 @@ function GET_LANGUAGE() { $ret = $GLOBALS['cache_array']['language']; } elseif (!empty($lang)) { // Check if main language file does exist - if (FILE_READABLE(constant('PATH')."inc/language/".$lang.".php")) { + if (FILE_READABLE(constant('PATH').'inc/language/'.$lang.'.php')) { // Okay found, so let's update cookies SET_LANGUAGE($lang); } @@ -746,14 +741,14 @@ function SET_LANGUAGE ($lang) { set_session('mx_lang', $lang); } // -function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") { +function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID='0') { global $DATA, $_CONFIG; // Make sure all template names are lowercase! $template = strtolower($template); - // Default "nickname" if extension is not installed - $nick = "---"; + // Default 'nickname' if extension is not installed + $nick = '---'; // Prepare IP number and User Agent $REMOTE_ADDR = GET_REMOTE_ADDR(); @@ -793,16 +788,16 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") { //* DEBUG: */ print __FUNCTION__."(".__LINE__."):UID={$UID},template={$template},content[]=".gettype($content)."
\n"; if (($UID > 0) && (is_array($content))) { // If nickname extension is installed, fetch nickname as well - if (EXT_IS_ACTIVE("nickname")) { + if (EXT_IS_ACTIVE('nickname')) { //* DEBUG: */ print __FUNCTION__."(".__LINE__."):NICKNAME!
\n"; // Load nickname $result = SQL_QUERY_ESC("SELECT surname, family, gender, email, nickname FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1", - array(bigintval($UID)), __FILE__, __LINE__); + array(bigintval($UID)), __FUNCTION__, __LINE__); } else { //* DEBUG: */ print __FUNCTION__."(".__LINE__."):NO-NICK!
\n"; /// Load normal data $result = SQL_QUERY_ESC("SELECT surname, family, gender, email FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1", - array(bigintval($UID)), __FILE__, __LINE__); + array(bigintval($UID)), __FUNCTION__, __LINE__); } // Fetch and merge data @@ -824,38 +819,38 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") { $DATA['email'] = $email; // Base directory - $BASE = sprintf("%stemplates/%s/emails/", constant('PATH'), GET_LANGUAGE()); + $basePath = sprintf("%stemplates/%s/emails/", constant('PATH'), GET_LANGUAGE()); // Check for admin/guest/member templates if (strpos($template, "admin_") > -1) { // Admin template found - $FQFN = $BASE."admin/".$template.".tpl"; + $FQFN = $basePath."admin/".$template.".tpl"; } elseif (strpos($template, "guest_") > -1) { // Guest template found - $FQFN = $BASE."guest/".$template.".tpl"; + $FQFN = $basePath."guest/".$template.".tpl"; } elseif (strpos($template, "member_") > -1) { // Member template found - $FQFN = $BASE."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 = $BASE.$test."/".$template.".tpl"; + $FQFN = $basePath.$test."/".$template.".tpl"; } else { // No special filename - $FQFN = $BASE.$template.".tpl"; + $FQFN = $basePath.$template.".tpl"; } } // Does the special template exists? if (!FILE_READABLE($FQFN)) { // Reset to default template - $FQFN = $BASE.$template.".tpl"; + $FQFN = $basePath.$template.".tpl"; } // END - if // Now does the final template exists? - $newContent = ""; + $newContent = ''; if (FILE_READABLE($FQFN)) { // The local file does exists so we load it. :) $tmpl_file = READ_FILE($FQFN); @@ -863,7 +858,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") { // Run code $tmpl_file = "\$newContent = decodeEntities(\"".COMPILE_CODE($tmpl_file)."\");"; - @eval($tmpl_file); + eval($tmpl_file); } elseif (!empty($template)) { // Template file not found! $newContent = "{--TEMPLATE_404--}: ".$template."
@@ -874,7 +869,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") {

"; // Debug mode not active? Then remove the HTML tags - if (!isBooleanConstantAndTrue('DEBUG_MODE')) $newContent = strip_tags($newContent); + if (!isDebugModeEnabled()) $newContent = strip_tags($newContent); } else { // No template name supplied! $newContent = getMessage('NO_TEMPLATE_SUPPLIED'); @@ -896,7 +891,7 @@ function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") { return COMPILE_CODE($newContent); } // -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); @@ -906,7 +901,7 @@ function MAKE_TIME($H, $M, $S, $stamp) { return mktime($H, $M, $S, $MONTH, $DAY, $YEAR); } // -function LOAD_URL($URL, $addUrlData=true) { +function LOAD_URL ($URL, $addUrlData=true) { // Compile out URI codes $URL = compileUriCode($URL); @@ -914,10 +909,14 @@ function LOAD_URL($URL, $addUrlData=true) { if ((substr($URL, 0, 7) != "http://") && (substr($URL, 0, 8) != "https://")) { // Make all URLs full-qualified $URL = "".$URL; - } + } // END - if + + // Three different debug ways... + //* DEBUG: */ debug_report_bug(sprintf("%s[%s:] URL=%s", __FUNCTION__, __LINE__, $URL)); + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, $URL); + //* DEBUG: */ die($URL); // Get output buffer - //* DEBUG: */ debug_report_bug(); $OUTPUT = ob_get_contents(); // Clear it only if there is content @@ -926,7 +925,7 @@ function LOAD_URL($URL, $addUrlData=true) { } // END - if // Add some data to URL if cookies are not accepted - if (((!defined('__COOKIES')) || (!__COOKIES)) && ($addUrlData)) $URL = ADD_URL_DATA($URL); + if (((!defined('__COOKIES')) || (!constant('__COOKIES'))) && ($addUrlData)) $URL = ADD_URL_DATA($URL); // Probe for bot from search engine if ((eregi("spider", GET_USER_AGENT())) || (eregi("bot", GET_USER_AGENT()))) { @@ -941,11 +940,13 @@ function LOAD_URL($URL, $addUrlData=true) { header ("Location: ".str_replace("&", "&", $URL)); } else { // Output error message - LOAD_INC("inc/header.php"); + LOAD_INC('inc/header.php'); LOAD_TEMPLATE("redirect_url", false, str_replace("&", "&", $URL)); - LOAD_INC("inc/footer.php"); + LOAD_INC('inc/footer.php'); } - exit(); + + // Shut the mailer down here + shutdown(); } // Wrapper for LOAD_URL but URL comes from a configuration entry @@ -964,20 +965,21 @@ function LOAD_CONFIGURED_URL ($configEntry) { } // -function COMPILE_CODE($code, $simple = false, $constants = true, $full = true) { +function COMPILE_CODE ($code, $simple = false, $constants = true, $full = true) { // Is the code a string? if (!is_string($code)) { // Silently return it return $code; } // END - if - $ARRAY = $GLOBALS['security_chars']; + // Init replacement-array with full security characters + $secChars = $GLOBALS['security_chars']; // Select smaller set of chars to replace when we e.g. want to compile URLs - if (!$full) $ARRAY = $GLOBALS['url_chars']; + if (!$full) $secChars = $GLOBALS['url_chars']; // Compile constants - if ($constants) { + if ($constants === true) { // BEFORE 0.2.1 : Language and data constants // WITH 0.2.1+ : Only language constants $code = str_replace('{--','".', str_replace('--}','."', $code)); @@ -988,16 +990,16 @@ function COMPILE_CODE($code, $simple = false, $constants = true, $full = true) { } // END - if // Compile QUOT and other non-HTML codes - foreach ($ARRAY['to'] as $k => $to) { + foreach ($secChars['to'] as $k => $to) { // Do the reversed thing as in inc/libs/security_functions.php - $code = str_replace($to, $ARRAY['from'][$k], $code); + $code = str_replace($to, $secChars['from'][$k], $code); } // END - foreach // But shall I keep simple quotes for later use? if ($simple) $code = str_replace("'", '{QUOT}', $code); // Find $content[bla][blub] entries - @preg_match_all('/\$(content|DATA)((\[([a-zA-Z0-9-_]+)\])*)/', $code, $matches); + preg_match_all('/\$(content|DATA)((\[([a-zA-Z0-9-_]+)\])*)/', $code, $matches); // Are some matches found? if ((count($matches) > 0) && (count($matches[0]) > 0)) { @@ -1062,8 +1064,7 @@ function COMPILE_CODE($code, $simple = false, $constants = true, $full = true) { * Sie, dass es doch nicht so schwer ist! :-) * * * ************************************************************************/ -function array_pk_sort(&$array, $a_sort, $primary_key = 0, $order = -1, $nums = false) -{ +function array_pk_sort (&$array, $a_sort, $primary_key = 0, $order = -1, $nums = false) { $dummy = $array; while ($primary_key < count($a_sort)) { foreach ($dummy[$a_sort[$primary_key]] as $key => $value) { @@ -1097,12 +1098,12 @@ function array_pk_sort(&$array, $a_sort, $primary_key = 0, $order = -1, $nums = // Write back sorted array $array = $dummy; } + // -function ADD_SELECTION($type, $DEFAULT, $prefix="", $id="0") { - global $MONTH_DESCR; - $OUT = ""; +function ADD_SELECTION ($type, $DEFAULT, $prefix="", $id="0") { + $OUT = ''; - if ($type == "yn") { + if ($type == 'yn') { // This is a yes/no selection only! if ($id > 0) $prefix .= "[".$id."]"; $OUT .= " \n"; for ($idx = 0; $idx <= 10; $idx++) { $OUT .= "