// Vertical align is given
if (!empty($VALIGN)) $OUT .= " valign=\"".$VALIGN."\"";
- $OUT .= ">
-<TR>
- <TD";
+ $OUT .= ">\n<TR>\n<TD";
if (!empty($ALIGN)) $OUT .=" align=\"".$ALIGN."\"";
$OUT .= " class=\"".$CLASS."\">";
- OUTPUT_HTML($OUT);
+ OUTPUT_HTML($OUT);
}
// Close a table (you may want to add some footer stuff here)
function CLOSE_TABLE($ADD="") {
- OUTPUT_HTML(" </TD>
-</TR>");
+ OUTPUT_HTML(" </TD>\n</TR>");
if (!empty($ADD)) OUTPUT_HTML($ADD);
OUTPUT_HTML("</TABLE>");
}
}
// Compile and run finished rendered HTML code
- while (strpos($OUTPUT, "{!") > 0) {
+ while (strpos($OUTPUT, '{!') > 0) {
$eval = "\$OUTPUT = \"" . COMPILE_CODE(addslashes($OUTPUT)) . "\";";
- @eval($eval);
+ eval($eval);
}
// Output code here, DO NOT REMOVE! ;-)
}
// Compile and run finished rendered HTML code
- while (strpos($OUTPUT, "{!") > 0) {
+ while (strpos($OUTPUT, '{!') > 0) {
$eval = "\$OUTPUT = \"" . COMPILE_CODE(addslashes($OUTPUT)) . "\";";
- @eval($eval);
+ eval($eval);
}
// Output code here, DO NOT REMOVE! ;-)
// Output the raw HTML code
function OUTPUT_RAW ($HTML) {
- if ((mxchange_installed) && (basename($_SERVER['PHP_SELF']) != "install.php")) {
+ if ((isBooleanConstantAndTrue('mxchange_installed')) && (basename($_SERVER['PHP_SELF']) != "install.php")) {
// Not in install-mode so strip slashes away
echo stripslashes($HTML);
} else {
}
// Add a fatal error message to the queue array
-function ADD_FATAL ($message, $extra="")
-{
+function ADD_FATAL ($message, $extra="") {
global $FATAL;
if (empty($extra)) {
// Regular text message to add to $FATAL
}
// Does the special template exists?
- if (!file_exists($file)) {
+ if ((!file_exists($file)) || (!is_readable($file))) {
// Reset to default template
$file = $BASE.$template.".tpl";
}
// Now does the final template exists?
- if (file_exists($file)) {
+ if ((file_exists($file)) && (is_readable($file))) {
// The local file does exists so we load it. :)
$tmpl_file = implode("", file($file));
// Replace ' to our own chars to preventing them being quoted
- while (strpos($tmpl_file, "\'") !== false) { $tmpl_file = str_replace("\'", "{QUOT}", $tmpl_file); }
+ while (strpos($tmpl_file, "\'") !== false) { $tmpl_file = str_replace("\'", '{QUOT}', $tmpl_file); }
// Do we have to compile the code?
if ((strpos($tmpl_file, "\$") !== false) || (strpos($tmpl_file, '{--') !== false) || (strpos($tmpl_file, '--}') > 0)) {
// Okay, compile it!
- $tmpl_file = "\$ret=\"".COMPILE_CODE(addslashes($tmpl_file))."\";";
+ $tmpl_file = "\$ret=\"" . COMPILE_CODE(addslashes($tmpl_file)) . "\";";
eval($tmpl_file);
} else {
// Simply return loaded code
// Add surrounding HTML comments to help finding bugs faster
$ret = "<!-- Template ".$template." - Start -->\n".$ret."<!-- Template ".$template." - End -->\n";
- } elseif ((IS_ADMIN()) || ((mxchange_installing) && (!mxchange_installed))) {
+ } elseif ((IS_ADMIN()) || ((isBooleanConstantAndTrue('mxchange_installing')) && (!isBooleanConstantAndTrue('mxchange_installed')))) {
// Only admins shall see this warning or when installation mode is active
$ret = "<br /><SPAN class=\"guest_failed\">".TEMPLATE_404."</SPAN><br />
(".basename($file).")<br />
// Output direct
OUTPUT_HTML($ret);
}
- } elseif (DEBUG_MODE) {
+ } elseif (isBooleanConstantAndTrue('DEBUG_MODE')) {
// Warning, empty output!
return "E:".$template."<br />\n";
}
// Send mail out to an email address
function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML='N', $FROM="") {
// Compile subject line (for POINTS constant etc.)
- $eval = "\$SUBJECT = \"".COMPILE_CODE(addslashes($SUBJECT))."\";";
+ $eval = "\$SUBJECT = \"" . COMPILE_CODE(addslashes($SUBJECT)) . "\";";
eval($eval);
$SUBJECT = html_entity_decode($SUBJECT);
// Append header
$FROM .= LOAD_EMAIL_TEMPLATE("header");
}
- } elseif (DEBUG_MODE) {
+ } elseif (isBooleanConstantAndTrue('DEBUG_MODE')) {
if (empty($FROM)) {
// Load email header template
$FROM = LOAD_EMAIL_TEMPLATE("header");
// Fix HTML parameter (default is no!)
if (empty($HTML)) $HTML = 'N';
- if (DEBUG_MODE) {
+ if (isBooleanConstantAndTrue('DEBUG_MODE')) {
// In debug mode we want to display the mail instead of sending it away so we can debug this part
echo "<PRE>
".htmlentities(trim($FROM))."
return $ret;
}
//
-function GET_LANGUAGE()
-{
- global $_SESSION, $_GET;
-
- if (!empty($_GET['mx_lang']))
- {
+function GET_LANGUAGE() {
+ if (!empty($_GET['mx_lang'])) {
// Accept only first 2 chars
$lang = substr($_GET['mx_lang'], 0, 2);
- }
- else
- {
+ } else {
// Do nothing
$lang = "";
}
$ret = DEFAULT_LANG;
// Check GET variable and cookie
- if (!empty($lang))
- {
+ if (!empty($lang)) {
// Check if main language file does exist
- if (file_exists(PATH."inc/language/".$lang.".php"))
- {
+ if (file_exists(PATH."inc/language/".$lang.".php")) {
// Okay found, so let's update cookies
SET_LANGUAGE($lang);
}
- }
- elseif (!empty($_SESSION['mx_lang']))
- {
+ } elseif (!isSessionVariableSet('mx_lang')) {
// Return stored value from cookie
- $ret = $_SESSION['mx_lang'];
+ $ret = get_session('mx_lang');
+
+ // Fixes a warning before the session has the mx_lang constant
+ if (empty($ret)) $ret = DEFAULT_LANG;
}
return $ret;
}
//
-function SET_LANGUAGE($lang)
-{
+function SET_LANGUAGE($lang) {
global $_CONFIG;
// Accept only first 2 chars!
// Set cookie
set_session("mx_lang", $lang);
-
- // Set array
- $_SESSION['mx_lang'] = $lang;
}
//
-function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0")
-{
+function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0") {
global $DATA, $_CONFIG, $REPLACER;
// Keept for backward-compatiblity (please replace these variables against our new {--CONST--} syntax!)
$HTTP_USER_AGENT = getenv('HTTP_USER_AGENT');
$ADMIN = MAIN_TITLE;
- if (!empty($_SESSION['admin_login']))
- {
+ if (isSessionVariableSet('admin_login')) {
// Load Admin data
$result = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
- array(SQL_ESCAPE($_SESSION['admin_login'])), __FILE__, __LINE__);
+ array(SQL_ESCAPE(get_session('admin_login'))), __FILE__, __LINE__);
list($ADMIN) = SQL_FETCHROW($result);
SQL_FREERESULT($result);
}
// Expiration in a nice output format
- if ($_CONFIG['auto_purge'] == 0)
- {
+ if ($_CONFIG['auto_purge'] == 0) {
// Will never expire!
$EXPIRATION = MAIL_WILL_NEVER_EXPIRE;
- }
- elseif (function_exists('CREATE_FANCY_TIME'))
- {
+ } elseif (function_exists('CREATE_FANCY_TIME')) {
// Create nice date string
$EXPIRATION = CREATE_FANCY_TIME($_CONFIG['auto_purge']);
- }
- else
- {
+ } else {
// Display days only
$EXPIRATION = round($_CONFIG['auto_purge']/60/60/24)." "._DAYS;
}
+
switch ($template)
{
case "bonus-mail": // Load data for the bonus mail
case "back-admin":
case "back-member":
- $points = TRANSLATE_COMMA($DATA[10]);
+ $points = TRANSLATE_COMMA($DATA[10]);
break;
case "add-points":
- $points = $_POST['points'];
+ if (isset($_POST['points'])) {
+ $points = bigintval($_POST['points']);
+ } else {
+ $points = __POINTS_VALUE;
+ }
break;
case "guest_request_confirm":
}
// Load user's data
- if ($UID > 0)
- {
- if (EXT_IS_ACTIVE("nickname"))
- {
+ if ($UID > 0) {
+ if (EXT_IS_ACTIVE("nickname")) {
// Load nickname
$result = SQL_QUERY_ESC("SELECT surname, family, sex, email, nickname FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
array(bigintval($UID)), __FILE__, __LINE__);
list($surname, $family, $sex, $email, $nick) = SQL_FETCHROW($result);
SQL_FREERESULT($result);
- }
- else
- {
+ } else {
// Load normal data
$result = SQL_QUERY_ESC("SELECT surname, family, sex, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
array(bigintval($UID)), __FILE__, __LINE__);
SQL_FREERESULT($result);
$nick = "---";
}
- }
- else
- {
+ } else {
// Neutral sex and email address is default
$sex = 'N';
$email = WEBMASTER;
$BASE = PATH."templates/".GET_LANGUAGE()."/emails/";
// Check for admin/guest/member templates
- if (strpos($template, "admin_") > -1)
- {
+ if (strpos($template, "admin_") > -1) {
// Admin template found
$file = $BASE."admin/".$template.".tpl";
- }
- elseif (strpos($template, "guest_") > -1)
- {
+ } elseif (strpos($template, "guest_") > -1) {
// Guest template found
$file = $BASE."guest/".$template.".tpl";
- }
- elseif (strpos($template, "member_") > -1)
- {
+ } elseif (strpos($template, "member_") > -1) {
// Member template found
$file = $BASE."member/".$template.".tpl";
- }
- else
- {
+ } else {
// Test for extension
$test = substr($template, 0, strpos($template, "_"));
- if (EXT_IS_ACTIVE($test))
- {
+ if (EXT_IS_ACTIVE($test)) {
// Set extra path to extension's name
$file = $BASE.$test."/".$template.".tpl";
- }
- else
- {
+ } else {
// No special filename
$file = $BASE.$template.".tpl";
}
}
// Does the special template exists?
- if (!@file_exists($file))
- {
+ if ((!@file_exists($file)) || (!is_readable($file))) {
// Reset to default template
$file = $BASE.$template.".tpl";
}
} else {
// Output error message
include(PATH."inc/header.php");
- OUTPUT_HTML(LOAD_URL_ERROR_1.$URL.LOAD_URL_ERROR_2);
+ LOAD_TEMPLATE("redirect_url", false, str_replace("&", "&", $URL));
include(PATH."inc/footer.php");
}
exit();
if ($constants) {
// BEFORE 0.2.1 : Language and data constants
// WITH 0.2.1+ : Only language constants
- $code = str_replace("{--", '".', str_replace("--}", '."', $code));
+ $code = str_replace('{--', '".', str_replace('--}', '."', $code));
// BEFORE 0.2.1 : Not used
// WITH 0.2.1+ : Data constants
- $code = str_replace("{!", '".', str_replace("!}", '."', $code));
+ $code = str_replace('{!', '".', str_replace("!}", '."', $code));
}
// Compile QUOT and other non-HTML codes
}
// But shall I keep simple quotes for later use?
- if ($simple) $code = str_replace("\'", "{QUOT}", $code);
+ if ($simple) $code = str_replace("\'", '{QUOT}', $code);
// Find $content[bla][blub] entries
@preg_match_all('/\$(content|DATA)((\[([a-zA-Z0-9-_]+)\])*)/', $code, $matches);
$OUT .= " <OPTION value=\"Y\"";
if ($DEFAULT == 'Y') $OUT .= " selected=\"selected\"";
$OUT .= ">".YES."</OPTION>
- <OPTION value=\"N\"";
+ <OPTION value=\"N\"";
if ($DEFAULT == 'N') $OUT .= " selected=\"selected\"";
$OUT .= ">".NO."</OPTION>\n";
break;
$data = $code.":".$uid.":".$DATA;
// Add more additional data
- if (isset($_SESSION['u_hash'])) $data .= ":".$_SESSION['u_hash'];
- if (isset($GLOBALS['userid'])) $data .= ":".$GLOBALS['userid'];
- if (isset($_SESSION['lifetime'])) $data .= ":".$_SESSION['lifetime'];
- if (isset($_SESSION['mxchange_theme'])) $data .= ":".$_SESSION['mxchange_theme'];
- if (isset($_SESSION['mx_lang'])) $data .= ":".$_SESSION['mx_lang'];
- if (isset($GLOBALS['refid'])) $data .= ":".$GLOBALS['refid'];
+ if (isSessionVariableSet('u_hash')) $data .= ":".get_session('u_hash');
+ if (isset($GLOBALS['userid'])) $data .= ":".$GLOBALS['userid'];
+ if (isSessionVariableSet('lifetime')) $data .= ":".get_session('lifetime');
+ if (isSessionVariableSet('mxchange_theme')) $data .= ":".get_session('mxchange_theme');
+ if (isSessionVariableSet('mx_lang')) $data .= ":".GET_LANGUAGE();
+ if (isset($GLOBALS['refid'])) $data .= ":".$GLOBALS['refid'];
// Calculate number for generating the code
$a = $code + _ADD - 1;
if ($len == 0) $len = 10;
// Cut off requested counts of number
- $return = substr(str_replace('.', '', $rcode), 0, $len);
+ $return = substr(str_replace('.', "", $rcode), 0, $len);
// Done building code
return $return;
}
// Does only allow numbers
-function bigintval($num)
+function bigintval($num, $castValue = true)
{
- $ret = (int) preg_replace("/[^0123456789]/", "", $num);
+ // Filter all numbers out
+ $ret = preg_replace("/[^0123456789]/", "", $num);
+
+ // Cast the value?
+ if ($castValue) $ret = (int) $ret;
+
+ // Return result
return $ret;
}
// Insert the code in $img_code into jpeg or PNG image
}
//
-function MXCHANGE_OPEN($script) {
+function MXCHANGE_OPEN ($script) {
// Compile the script name
$script = COMPILE_CODE($script);
// Open connection
$fp = @fsockopen($host, 80, $errno, $errdesc, 30);
- if (!$fp)
- {
+ if (!$fp) {
// Failed!
return array("", "", "");
}
// Read response
while(!feof($fp)) {
- $response[] = fgets($fp, 1024);
+ $response[] = trim(fgets($fp, 1024));
}
// Close socket
return $EMAIL;
}
// Generate a hash for extra-security for all passwords
-function generateHash($plainText, $salt = "") {
+function generateHash ($plainText, $salt = "") {
global $_CONFIG, $_SERVER;
// Is the required extension "sql_patches" there?
if ((!empty($_GET['refid'])) && (strpos($URL, "refid=") == 0)) {
// Cookie found in URL
$ADD .= $BIND."refid=".bigintval($_GET['refid']);
- } elseif ((GET_EXT_VERSION("sql_patches") != "") && ($_CONFIG['def_refid'] > 0)) {
+ } elseif ((GET_EXT_VERSION("sql_patches") != '') && ($_CONFIG['def_refid'] > 0)) {
// Not found! So let's set default here
$ADD .= $BIND."refid=".$_CONFIG['def_refid'];
}
//
function generatePassString($passHash) {
global $_CONFIG;
- $ret = "*FAILED*";
+
+ // Return vanilla password hash
+ $ret = $passHash;
// Is a secret key and master salt already initialized?
if ((!empty($_CONFIG['secret_key'])) && (!empty($_CONFIG['master_salt']))) {
$start += 4;
$newHash .= $mod;
}
+
//* DEBUG: */ die($passHash."<br>".$newHash." (".strlen($newHash).")");
$ret = generateHash($newHash, $_CONFIG['master_salt']);
+ } else {
+ // Hash it simple
+ //* DEBUG: */ echo "--".$passHash."--<br />\n";
+ $ret = md5($passHash);
+ //* DEBUG: */ echo "++".$ret."++<br />\n";
}
// Return result
// Then check all cookies if they are marked as deleted!
foreach ($cookies as $cookieName) {
// Is the cookie set to "deleted"?
- if ((isset($_SESSION[$cookieName])) && ($_SESSION[$cookieName] == "deleted")) {
- unset($_SESSION[$cookieName]);
+ if (get_session($cookieName) == "deleted") {
+ set_session($cookieName, "");
}
}
}
);
// Load the template
- LOAD_TEMPLATE("footer_stats", false, $content);
+ LOAD_TEMPLATE("show_timings", false, $content);
}
// Unset/set session variables
$var = trim(SQL_ESCAPE($var)); $value = trim($value);
// Is the session variable set?
- if (("".$value."" == "") && (isset($_SESSION[$var]))) {
+ if (("".$value."" == "") && (isSessionVariableSet($var))) {
// Remove the session
- //* DEBUG: */ echo "UNSET:".$var."=".$_SESSION[$var]."<br />\n";
+ //* DEBUG: */ echo "UNSET:".$var."=".get_session($var)."<br />\n";
unset($_SESSION[$var]);
return session_unregister($var);
- } elseif (("".$value."" != "") && (!isset($_SESSION[$var]))) {
+ } elseif (("".$value."" != '') && (!isSessionVariableSet($var))) {
// Set session
//* DEBUG: */ echo "SET:".$var."=".$value."<br />\n";
$_SESSION[$var] = $value;
//* DEBUG: */ echo "IGNORED:".$var."=".$value."<br />\n";
return true;
}
+// Check wether a boolean constant is set
+// Taken from user comments in PHP documentation for function constant()
+function isBooleanConstantAndTrue($constname) { // : Boolean
+ $res = false;
+ if (defined($constname)) $res = (constant($constname) === true);
+ return($res);
+}
+
+// Check wether a session variable is set
+function isSessionVariableSet($var) {
+ return (isset($_SESSION[$var]));
+}
+
+// Returns wether the value of the session variable or NULL if not set
+function get_session($var) {
+ if (!isset($_SESSION)) session_start();
+
+ // Default is not found! ;-)
+ $value = null;
+
+ // Is the variable there?
+ if (isSessionVariableSet($var)) {
+ // Then get it secured!
+ $value = SQL_ESCAPE($_SESSION[$var]);
+ }
+
+ // Return the value
+ return $value;
+}
//
//////////////////////////////////////////////