]> git.mxchange.org Git - mailer.git/blobdiff - inc/functions.php
Even some more... :-(
[mailer.git] / inc / functions.php
index 98533a8799a6433ba4fcccbf6e4a935a7a905457..7838ec88620947b87d2cc7c6bb17e64386358bf7 100644 (file)
@@ -184,7 +184,7 @@ function doFinalCompilation ($code, $insertComments = true) {
                $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);
@@ -454,7 +454,7 @@ function loadEmailTemplate ($template, $content = array(), $userid = '0') {
        } // 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))) {
@@ -1460,7 +1460,7 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align =
 
        // Calculate 2-seconds timestamp
        $stamp = round($timestamp);
-       //* DEBUG: */ print('*' . $stamp .'/' . $timestamp . '*<br />');
+       //* DEBUG: */ debugOutput('*' . $stamp .'/' . $timestamp . '*');
 
        // Do we have a leap year?
        $SWITCH = '0';
@@ -1473,25 +1473,25 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align =
 
        // 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)) {
@@ -1732,7 +1732,7 @@ function extractHostnameFromUrl (&$script) {
        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));
@@ -1741,7 +1741,7 @@ function extractHostnameFromUrl (&$script) {
                $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
@@ -1855,7 +1855,7 @@ function sendRawRequest ($host, $request) {
        $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')));
@@ -1955,8 +1955,8 @@ function sendRawRequest ($host, $request) {
                }
        } // 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])) {
@@ -1998,7 +1998,7 @@ function setupProxyTunnel ($host, $resource) {
 
        // 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);
@@ -2040,11 +2040,11 @@ function isEmailValid ($email) {
 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')) {
@@ -2070,7 +2070,7 @@ function generateMemberAdminActionLinks ($userid, $status = '') {
 
        foreach ($targetArray as $tar) {
                $OUT .= '<span class="admin_user_link"><a href="{%url=modules.php?module=admin&amp;what=' . $tar . '&amp;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';
@@ -2123,7 +2123,7 @@ function generateEmailLink ($email, $table = 'admins') {
 // 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
@@ -2160,20 +2160,20 @@ function generateHash ($plainText, $salt = '', $hash = true) {
 
                // 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')) {
@@ -2186,7 +2186,7 @@ function generateHash ($plainText, $salt = '', $hash = true) {
        $finalHash = $salt . sha1($salt . $plainText);
 
        // Debug output
-       //* DEBUG: */ outputHtml('finalHash=' . $finalHash);
+       //* DEBUG: */ debugOutput('finalHash=' . $finalHash);
 
        // Return hash
        return $finalHash;
@@ -2213,7 +2213,7 @@ function scrambleString($str) {
        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);
@@ -2223,7 +2223,7 @@ function scrambleString($str) {
        } // END - for
 
        // Return scrambled string
-       //* DEBUG: */ outputHtml('***Scrambled=' . $scrambled.'***<br />');
+       //* DEBUG: */ debugOutput('***Scrambled=' . $scrambled.'***<br />');
        return $scrambled;
 }
 
@@ -2240,14 +2240,14 @@ function descrambleString($str) {
 
        // 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;
 }
 
@@ -2398,14 +2398,14 @@ function isBooleanConstantAndTrue ($constName) { // : Boolean
        // 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
 
@@ -2535,8 +2535,9 @@ function debug_report_bug ($F, $L, $message = '', $sendEmail = true) {
        // 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())) {
@@ -2727,7 +2728,7 @@ function isUrlValidSimple ($url) {
                        // @TODO Are these convertions still required?
                        $pat = str_replace('.', "&#92;&#46;", $pat);
                        $pat = str_replace('@', "&#92;&#64;", $pat);
-                       //* DEBUG: */ outputHtml($key."=&nbsp;" . $pat . '<br />');
+                       //* DEBUG: */ debugOutput($key."=&nbsp;" . $pat);
                } // END - if
 
                // Check if expression matches
@@ -2756,12 +2757,12 @@ function changeDataInFile ($FQFN, $comment, $prefix, $suffix, $DATA, $seek=0) {
                $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)) {
@@ -2810,7 +2811,7 @@ function changeDataInFile ($FQFN, $comment, $prefix, $suffix, $DATA, $seek=0) {
                }
        } 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!
@@ -3218,7 +3219,7 @@ function generateExtensionInactiveMessage ($ext_name) {
        // 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
@@ -3239,7 +3240,7 @@ function generateExtensionNotInstalledMessage ($ext_name) {
        // 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
@@ -3303,7 +3304,7 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
                // 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
 
@@ -3317,9 +3318,9 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
                // 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;