$REMOTE_ADDR = getenv('REMOTE_ADDR');
$HTTP_USER_AGENT = getenv('HTTP_USER_AGENT');
+ // Default admin
$ADMIN = MAIN_TITLE;
- if (isSessionVariableSet('admin_login')) {
+
+ // Is the admin logged in?
+ if (IS_ADMIN()) {
// Load Admin data
- $result = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
- array(get_session('admin_login')), __FILE__, __LINE__);
- list($ADMIN) = SQL_FETCHROW($result);
- SQL_FREERESULT($result);
+ $ADMIN = GET_ADMIN_EMAIL(get_session('admin_login'));
} // END - if
// Neutral email address is default
array(bigintval($UID)), __FILE__, __LINE__);
} else {
//* DEBUG: */ echo __FUNCTION__.":NO-NICK!<br />\n";
- // Load normal data
+ /// 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__);
}
// Run code
$tmpl_file = "\$newContent=html_entity_decode(\"".COMPILE_CODE($tmpl_file)."\");";
- eval($tmpl_file);
+ @eval($tmpl_file);
} elseif (!empty($template)) {
// Template file not found!
$newContent = TEMPLATE_404.": ".$template."<br />
// Is there some content?
if (empty($newContent)) {
// Compiling failed
- $newContent = "Compiler error for template {$template}!";
+ $newContent = "Compiler error for template {$template}!\nUncompiled content:\n".$tmpl_file;
+ 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
// Return compiled content
// BEFORE 0.2.1 : Not used
// WITH 0.2.1+ : Data constants
$code = str_replace('{!','".', str_replace("!}", '."', $code));
- }
+ } // END - if
// Compile QUOT and other non-HTML codes
foreach ($ARRAY['to'] as $k => $to) {
// Do the reversed thing as in inc/libs/security_functions.php
$code = str_replace($to, $ARRAY['from'][$k], $code);
- }
+ } // END - foreach
// But shall I keep simple quotes for later use?
if ($simple) $code = str_replace("\'", '{QUOT}', $code);
// Replace all matches
$matchesFound = array();
foreach ($matches[0] as $key => $match) {
- // Avoid replacing matches multiple times
- if (!isset($matchesFound[$match])) {
- // Not yet replaced!
- $code = str_replace($match, "\".".$match.".\"", $code);
- $matchesFound[$match] = 1;
- } // END - if
+ // Fuzzy look has failed by default
+ $fuzzyFound = false;
+
+ // Fuzzy look on match if already found
+ foreach ($matchesFound as $found => $set) {
+ // Get test part
+ $test = substr($found, 0, strlen($match));
+
+ // Does this entry exist?
+ //* DEBUG: */ echo __FUNCTION__.":found={$found},match={$match},set={$set}<br />\n";
+ if ($test == $match) {
+ // Match found!
+ //* DEBUG: */ echo __FUNCTION__.":fuzzyFound!<br />\n";
+ $fuzzyFound = true;
+ break;
+ } // END - if
+ } // END - foreach
+
+ // Skip this entry?
+ if ($fuzzyFound) continue;
// Take all string elements
- if ((is_string($matches[4][$key])) && (!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: */ echo __FUNCTION__.":key={$key},match={$match}<br />\n";
$newMatch = str_replace("[".$matches[4][$key]."]", "['".$matches[4][$key]."']", $match);
- $code = str_replace($match, $newMatch, $code);
+ $code = str_replace($match, "\".".$newMatch.".\"", $code);
$matchesFound[$key."_".$matches[4][$key]] = 1;
- } // END - if
- }
- }
+ $matchesFound[$match] = 1;
+ } elseif (!isset($matchesFound[$match])) {
+ // Not yet replaced!
+ //* DEBUG: */ echo __FUNCTION__.":match={$match}<br />\n";
+ $code = str_replace($match, "\".".$match.".\"", $code);
+ $matchesFound[$match] = 1;
+ }
+ } // END - foreach
+ } // END - if
// Return compiled code
return $code;
global $_CONFIG, $_SERVER;
// Is the required extension "sql_patches" there and a salt is not given?
- if (((EXT_VERSION_IS_OLDER("sql_patches", "0.3.6")) || (GET_EXT_VERSION("sql_patches") == "")) && (empty($salt))) {
+ if (((EXT_VERSION_IS_OLDER("sql_patches", "0.3.6")) || (EXT_IS_ACTIVE("sql_patches"))) && (empty($salt))) {
// Extension sql_patches is missing/outdated so we return the plain text
return $plainText;
} // END - if
} // END - if
// When the salt is empty build a new one, else use the first x configured characters as the salt
- if ($salt == "") {
+ if (empty($salt)) {
// Build server string
$server = $_SERVER['PHP_SELF'].":".getenv('HTTP_USER_AGENT').":".getenv('SERVER_SOFTWARE').":".getenv('REMOTE_ADDR').":".":".filemtime(PATH."inc/databases.php");