$newContent = '';
// Compile it
- //* DEBUG: */ print '<pre>'.htmlentities($code).'</pre>';
+ //* DEBUG: */ debugOutput('<pre>'.htmlentities($code).'</pre>');
$eval = '$newContent = "' . str_replace('{DQUOTE}', '"', compileCode(escapeQuotes($code))) . '";';
//* DEBUG: */ if ($insertComments) die('<pre>'.linenumberCode($eval).'</pre>');
eval($eval);
} // END - if
// Load user's data
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "UID={$userid},template={$template},content[]=".gettype($content).'<br />');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "UID={$userid},template={$template},content[]=".gettype($content));
if (($userid > 0) && (is_array($content))) {
// If nickname extension is installed, fetch nickname as well
if ((isExtensionActive('nickname')) && (isNicknameUsed($userid))) {
// Calculate 2-seconds timestamp
$stamp = round($timestamp);
- //* DEBUG: */ print('*' . $stamp .'/' . $timestamp . '*<br />');
+ //* DEBUG: */ debugOutput('*' . $stamp .'/' . $timestamp . '*');
// Do we have a leap year?
$SWITCH = '0';
// First of all years...
$Y = abs(floor($timestamp / (31536000 + $SWITCH)));
- //* DEBUG: */ print("Y={$Y}<br />");
+ //* DEBUG: */ debugOutput('Y=' . $Y);
// Next months...
$M = abs(floor($timestamp / 2628000 - $Y * 12));
- //* DEBUG: */ print("M={$M}<br />");
+ //* DEBUG: */ debugOutput('M=' . $M);
// Next weeks
$W = abs(floor($timestamp / 604800 - $Y * ((365 + $SWITCH / getConfig('ONE_DAY')) / 7) - ($M / 12 * (365 + $SWITCH / getConfig('ONE_DAY')) / 7)));
- //* DEBUG: */ print("W={$W}<br />");
+ //* DEBUG: */ debugOutput('W=' . $W);
// Next days...
$D = abs(floor($timestamp / 86400 - $Y * (365 + $SWITCH / getConfig('ONE_DAY')) - ($M / 12 * (365 + $SWITCH / getConfig('ONE_DAY'))) - $W * 7));
- //* DEBUG: */ print("D={$D}<br />");
+ //* DEBUG: */ debugOutput('D=' . $D);
// Next hours...
$h = abs(floor($timestamp / 3600 - $Y * (365 + $SWITCH / getConfig('ONE_DAY')) * 24 - ($M / 12 * (365 + $SWITCH / getConfig('ONE_DAY')) * 24) - $W * 7 * 24 - $D * 24));
- //* DEBUG: */ print("h={$h}<br />");
+ //* DEBUG: */ debugOutput('h=' . $h);
// Next minutes..
$m = abs(floor($timestamp / 60 - $Y * (365 + $SWITCH / getConfig('ONE_DAY')) * 24 * 60 - ($M / 12 * (365 + $SWITCH / getConfig('ONE_DAY')) * 24 * 60) - $W * 7 * 24 * 60 - $D * 24 * 60 - $h * 60));
- //* DEBUG: */ print("m={$m}<br />");
+ //* DEBUG: */ debugOutput('m=' . $m);
// And at last seconds...
$s = abs(floor($timestamp - $Y * (365 + $SWITCH / getConfig('ONE_DAY')) * 24 * 3600 - ($M / 12 * (365 + $SWITCH / getConfig('ONE_DAY')) * 24 * 3600) - $W * 7 * 24 * 3600 - $D * 24 * 3600 - $h * 3600 - $m * 60));
- //* DEBUG: */ print("s={$s}<br />");
+ //* DEBUG: */ debugOutput('s=' . $s);
// Is seconds zero and time is < 60 seconds?
if (($s == '0') && ($timestamp < 60)) {
if (isInString('/', $host)) $host = substr($host, 0, strpos($host, '/'));
// Generate relative URL
- //* DEBUG: */ print('SCRIPT=' . $script.'<br />');
+ //* DEBUG: */ debugOutput('SCRIPT=' . $script);
if (substr(strtolower($script), 0, 7) == 'http://') {
// But only if http:// is in front!
$script = substr($script, (strlen($url) + 7));
$script = substr($script, (strlen($url) + 8));
}
- //* DEBUG: */ print('SCRIPT=' . $script.'<br />');
+ //* DEBUG: */ debugOutput('SCRIPT=' . $script);
if (substr($script, 0, 1) == '/') $script = substr($script, 1);
// Return host name
$resolver = new HostnameResolver();
// Open connection
- //* DEBUG: */ die('SCRIPT=' . $script.'<br />');
+ //* DEBUG: */ die('SCRIPT=' . $script);
if ($useProxy === true) {
// Resolve hostname into IP address
$ip = $resolver->resolveHostname(compileRawCode(getConfig('proxy_host')));
}
} // END - foreach
- //* DEBUG: */ print('<strong>Request:</strong><pre>'.print_r($request, true).'</pre>');
- //* DEBUG: */ print('<strong>Response:</strong><pre>'.print_r($response, true).'</pre>');
+ //* DEBUG: */ debugOutput('<strong>Request:</strong><pre>'.print_r($request, true).'</pre>');
+ //* DEBUG: */ debugOutput('<strong>Response:</strong><pre>'.print_r($response, true).'</pre>');
// Proxy agent found or something went wrong?
if (!isset($response[0])) {
// Add last new-line
$proxyTunnel .= getConfig('HTTP_EOL');
- //* DEBUG: */ print('<strong>proxyTunnel=</strong><pre>' . $proxyTunnel.'</pre>');
+ //* DEBUG: */ debugOutput('<strong>proxyTunnel=</strong><pre>' . $proxyTunnel.'</pre>');
// Write request
fwrite($fp, $proxyTunnel);
function isUrlValid ($URL, $compile=true) {
// Trim URL a little
$URL = trim(urldecode($URL));
- //* DEBUG: */ outputHtml($URL.'<br />');
+ //* DEBUG: */ debugOutput($URL);
// Compile some chars out...
if ($compile === true) $URL = compileUriCode($URL, false, false, false);
- //* DEBUG: */ outputHtml($URL.'<br />');
+ //* DEBUG: */ debugOutput($URL);
// Check for the extension filter
if (isExtensionActive('filter')) {
foreach ($targetArray as $tar) {
$OUT .= '<span class="admin_user_link"><a href="{%url=modules.php?module=admin&what=' . $tar . '&userid=' . $userid . '%}" title="{--ADMIN_LINK_';
- //* DEBUG: */ outputHtml('*' . $tar.'/' . $status.'*<br />');
+ //* DEBUG: */ debugOutput('*' . $tar.'/' . $status.'*');
if (($tar == 'lock_user') && ($status == 'LOCKED')) {
// Locked accounts shall be unlocked
$OUT .= 'UNLOCK_USER';
// Generate a hash for extra-security for all passwords
function generateHash ($plainText, $salt = '', $hash = true) {
// Debug output
- //* DEBUG: */ outputHtml('plainText=' . $plainText . ',salt=' . $salt . ',hash='.intval($hash).'<br />');
+ //* DEBUG: */ debugOutput('plainText=' . $plainText . ',salt=' . $salt . ',hash='.intval($hash));
// Is the required extension 'sql_patches' there and a salt is not given?
// 0123 4 43 3 4 432 2 3 32 2 3 3210
// 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: */ outputHtml('SHA1=' . $sha1.' ('.strlen($sha1).')<br />');
+ //* DEBUG: */ debugOutput('SHA1=' . $sha1.' ('.strlen($sha1).')<br />');
$sha1 = scrambleString($sha1);
- //* DEBUG: */ outputHtml('Scrambled=' . $sha1.' ('.strlen($sha1).')<br />');
+ //* DEBUG: */ debugOutput('Scrambled=' . $sha1.' ('.strlen($sha1).')<br />');
//* DEBUG: */ $sha1b = descrambleString($sha1);
- //* DEBUG: */ outputHtml('Descrambled=' . $sha1b.' ('.strlen($sha1b).')<br />');
+ //* DEBUG: */ debugOutput('Descrambled=' . $sha1b.' ('.strlen($sha1b).')<br />');
// Generate the password salt string
$salt = substr($sha1, 0, getConfig('salt_length'));
- //* DEBUG: */ outputHtml($salt.' ('.strlen($salt).')<br />');
+ //* DEBUG: */ debugOutput($salt.' ('.strlen($salt).')<br />');
} else {
// Use given salt
- //* DEBUG: */ outputHtml('salt=' . $salt . '<br />');
+ //* DEBUG: */ debugOutput('salt=' . $salt);
$salt = substr($salt, 0, getConfig('salt_length'));
- //* DEBUG: */ outputHtml('salt=' . $salt . '(' . strlen($salt) . '/' . getConfig('salt_length') . ')<br />');
+ //* DEBUG: */ debugOutput('salt=' . $salt . '(' . strlen($salt) . '/' . getConfig('salt_length') . ')<br />');
// Sanity check on salt
if (strlen($salt) != getConfig('salt_length')) {
$finalHash = $salt . sha1($salt . $plainText);
// Debug output
- //* DEBUG: */ outputHtml('finalHash=' . $finalHash);
+ //* DEBUG: */ debugOutput('finalHash=' . $finalHash);
// Return hash
return $finalHash;
if (strlen($str) != count($scrambleNums)) return $str;
// Scramble string here
- //* DEBUG: */ outputHtml('***Original=' . $str.'***<br />');
+ //* DEBUG: */ debugOutput('***Original=' . $str.'***<br />');
for ($idx = 0; $idx < strlen($str); $idx++) {
// Get char on scrambled position
$char = substr($str, $scrambleNums[$idx], 1);
} // END - for
// Return scrambled string
- //* DEBUG: */ outputHtml('***Scrambled=' . $scrambled.'***<br />');
+ //* DEBUG: */ debugOutput('***Scrambled=' . $scrambled.'***<br />');
return $scrambled;
}
// Begin descrambling
$orig = str_repeat(' ', 40);
- //* DEBUG: */ outputHtml('+++Scrambled=' . $str.'+++<br />');
+ //* DEBUG: */ debugOutput('+++Scrambled=' . $str.'+++<br />');
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: */ outputHtml('+++Original=' . $orig.'+++<br />');
+ //* DEBUG: */ debugOutput('+++Original=' . $orig.'+++<br />');
return $orig;
}
// In cache?
if (isset($GLOBALS['cache_array']['const'][$constName])) {
// Use cache
- //* DEBUG: */ outputHtml(__FUNCTION__ . '(<font color="#0000aa">' . __LINE__ . '</font>): ' . $constName."-CACHE!<br />");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(<font color="#0000aa">' . __LINE__ . '</font>): ' . $constName."-CACHE!<br />");
$res = ($GLOBALS['cache_array']['const'][$constName] === true);
} else {
// Check constant
- //* DEBUG: */ outputHtml(__FUNCTION__ . '(<font color="#0000aa">' . __LINE__ . '</font>): ' . $constName."-RESOLVE!<br />");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(<font color="#0000aa">' . __LINE__ . '</font>): ' . $constName."-RESOLVE!<br />");
if (defined($constName)) {
// Found!
- //* DEBUG: */ outputHtml(__FUNCTION__ . '(<font color="#0000aa">' . __LINE__ . '</font>): ' . $constName."-FOUND!<br />");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(<font color="#0000aa">' . __LINE__ . '</font>): ' . $constName."-FOUND!<br />");
$res = (constant($constName) === true);
} // END - if
// Add output
$debug .= 'Please report this bug at <a title="Direct link to the bug-tracker" href="http://bugs.mxchange.org" rel="external" target="_blank">http://bugs.mxchange.org</a> and include the logfile from <strong>' . str_replace(getConfig('PATH'), '', getConfig('CACHE_PATH')) . 'debug.log</strong> in your report (you can now attach files):<pre>';
$debug .= debug_get_printable_backtrace();
- $debug .= '</pre>Request-URI: ' . getRequestUri() . '<br />';
- $debug .= 'Thank you for finding bugs.';
+ $debug .= '</pre>';
+ $debug .= '<div>Request-URI: ' . getRequestUri() . '</div>';
+ $debug .= '<div>Thank you for finding bugs.</div>';
// Send an email? (e.g. not wanted for evaluation errors)
if (($sendEmail === true) && (!isInstallationPhase())) {
// @TODO Are these convertions still required?
$pat = str_replace('.', "\.", $pat);
$pat = str_replace('@', "\@", $pat);
- //* DEBUG: */ outputHtml($key."= " . $pat . '<br />');
+ //* DEBUG: */ debugOutput($key."= " . $pat);
} // END - if
// Check if expression matches
$tmp = $FQFN . '.tmp';
// Open the source file
- $fp = fopen($FQFN, 'r') or outputHtml('<strong>READ:</strong> ' . $FQFN . '<br />');
+ $fp = fopen($FQFN, 'r') or debug_report_bug(__FUNCTION__, __LINE__, 'Cannot read. file=' . basename($FQFN));
// Is the resource valid?
if (is_resource($fp)) {
// Open temporary file
- $fp_tmp = fopen($tmp, 'w') or outputHtml('<strong>WRITE:</strong> ' . $tmp . '<br />');
+ $fp_tmp = fopen($tmp, 'w') or debug_report_bug(__FUNCTION__, __LINE__, 'Cannot write. tmp=' . basename($tmp) . ',file=' . $FQFN);
// Is the resource again valid?
if (is_resource($fp_tmp)) {
}
} else {
// File not found, not readable or writeable
- outputHtml('<strong>404:</strong> ' . $FQFN . '<br />');
+ debug_report_bug(__FUNCTION__, __LINE__, 'File not readable/writeable. file=' . basename($FQFN));
}
// An error was detected!
// Is the extension empty?
if (empty($ext_name)) {
// This should not happen
- debug_report_bug(__FUNCTION__ . ': Parameter ext is empty. This should not happen.');
+ debug_report_bug(__FUNCTION__, __LINE__, 'Parameter ext is empty. This should not happen.');
} // END - if
// Default message
// Is the extension empty?
if (empty($ext_name)) {
// This should not happen
- debug_report_bug(__FUNCTION__ . ': Parameter ext is empty. This should not happen.');
+ debug_report_bug(__FUNCTION__, __LINE__, 'Parameter ext is empty. This should not happen.');
} // END - if
// Default message
// Exclude '.', '..' and entries in $excludeArray automatically
if (in_array($baseFile, $excludeArray, true)) {
// Exclude them
- //* DEBUG: */ outputHtml('excluded=' . $baseFile . '<br />');
+ //* DEBUG: */ debugOutput('excluded=' . $baseFile);
continue;
} // END - if
// Check if the base filenname matches an exclusion pattern and if the pattern is not empty
if ((!empty($excludePattern)) && (preg_match($excludePattern, $baseFile, $match))) {
// These Lines are only for debugging!!
- //* DEBUG: */ outputHtml('baseDir:' . $baseDir . '<br />');
- //* DEBUG: */ outputHtml('baseFile:' . $baseFile . '<br />');
- //* DEBUG: */ outputHtml('FQFN:' . $FQFN . '<br />');
+ //* DEBUG: */ debugOutput('baseDir:' . $baseDir);
+ //* DEBUG: */ debugOutput('baseFile:' . $baseFile);
+ //* DEBUG: */ debugOutput('FQFN:' . $FQFN);
// Exclude this one
continue;