]> git.mxchange.org Git - mailer.git/blobdiff - inc/functions.php
New wrapper functions introduced, TODOs.txt updated
[mailer.git] / inc / functions.php
index dbd0bc42611156a20dbb8874f412bcbede1afc5c..bf192a5fb7917c2681401374ed201350e49e8383 100644 (file)
@@ -118,12 +118,12 @@ function sendEmail ($toEmail, $subject, $message, $isHtml = 'N', $mailHeader = '
                                $toEmail = getUserData('email');
                        } else {
                                // Set webmaster
-                               $toEmail = getConfig('WEBMASTER');
+                               $toEmail = getWebmaster();
                        }
                }
        } elseif ($toEmail == '0') {
                // Is the webmaster!
-               $toEmail = getConfig('WEBMASTER');
+               $toEmail = getWebmaster();
        }
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "TO={$toEmail}<br />");
 
@@ -169,8 +169,8 @@ Message : ' . htmlentities(utf8_decode($message)) . '
                // Send Mail away
                return sendRawEmail($toEmail, $subject, $message, $mailHeader);
        } elseif ($isHtml != 'Y') {
-               // Problem found!
-               return sendRawEmail(getConfig('WEBMASTER'), '[PROBLEM:]' . $subject, $message, $mailHeader);
+               // Problem detected while sending a mail, forward it to admin
+               return sendRawEmail(getWebmaster(), '[PROBLEM:]' . $subject, $message, $mailHeader);
        }
 
        // Why did we end up here? This should not happen
@@ -219,7 +219,7 @@ function sendRawEmail ($toEmail, $subject, $message, $headers) {
                $mail->Username   = getConfig('SMTP_USER');
                $mail->Password   = getConfig('SMTP_PASSWORD');
                if (empty($headers)) {
-                       $mail->From = getConfig('WEBMASTER');
+                       $mail->From = getWebmaster();
                } else {
                        $mail->From = $headers;
                }
@@ -235,10 +235,10 @@ function sendRawEmail ($toEmail, $subject, $message, $headers) {
                }
 
                $mail->AddAddress($toEmail, '');
-               $mail->AddReplyTo(getConfig('WEBMASTER'), getMainTitle());
-               $mail->AddCustomHeader('Errors-To:' . getConfig('WEBMASTER'));
-               $mail->AddCustomHeader('X-Loop:' . getConfig('WEBMASTER'));
-               $mail->AddCustomHeader('Bounces-To:' . getConfig('WEBMASTER'));
+               $mail->AddReplyTo(getWebmaster(), getMainTitle());
+               $mail->AddCustomHeader('Errors-To:' . getWebmaster());
+               $mail->AddCustomHeader('X-Loop:' . getWebmaster());
+               $mail->AddCustomHeader('Bounces-To:' . getWebmaster());
                $mail->Send();
 
                // Has an error occured?
@@ -659,7 +659,7 @@ function generateRandomCode ($length, $code, $userid, $DATA = '') {
        $server = $_SERVER['PHP_SELF'] . getEncryptSeperator() . detectUserAgent() . getEncryptSeperator() . getenv('SERVER_SOFTWARE') . getEncryptSeperator() . detectRealIpAddress() . getEncryptSeperator() . detectRemoteAddr();
 
        // Build key string
-       $keys = getConfig('SITE_KEY') . getEncryptSeperator() . getConfig('DATE_KEY');
+       $keys = getSiteKey() . getEncryptSeperator() . getDateKey();
        if (isConfigEntrySet('secret_key')) {
                $keys .= getEncryptSeperator().getSecretKey();
        } // END - if
@@ -690,22 +690,26 @@ function generateRandomCode ($length, $code, $userid, $DATA = '') {
 
        if (isConfigEntrySet('master_salt')) {
                // Generate hash with master salt from modula of number with the prime number and other data
-               $saltedHash = generateHash(($a % getPrime()) . getEncryptSeperator() . $server . getEncryptSeperator() . $keys . getEncryptSeperator() . $data . getEncryptSeperator() . getConfig('DATE_KEY') . getEncryptSeperator() . $a, getMasterSalt());
+               $saltedHash = generateHash(($a % getPrime()) . getEncryptSeperator() . $server . getEncryptSeperator() . $keys . getEncryptSeperator() . $data . getEncryptSeperator() . getDateKey() . getEncryptSeperator() . $a, getMasterSalt());
 
                // Create number from hash
-               $rcode = hexdec(substr($saltedHash, strlen(getMasterSalt()), 9)) / abs(getConfig('rand_no') - $a + sqrt(getConfig('_ADD'))) / pi();
+               $rcode = hexdec(substr($saltedHash, strlen(getMasterSalt()), 9)) / abs(getRandNo() - $a + sqrt(getConfig('_ADD'))) / pi();
        } else {
                // Generate hash with "hash of site key" from modula of number with the prime number and other data
-               $saltedHash = generateHash(($a % getPrime()) . getEncryptSeperator() . $server . getEncryptSeperator() . $keys . getEncryptSeperator() . $data . getEncryptSeperator() . getConfig('DATE_KEY') . getEncryptSeperator() . $a, substr(sha1(getConfig('SITE_KEY')), 0, getSaltLength()));
+               $saltedHash = generateHash(($a % getPrime()) . getEncryptSeperator() . $server . getEncryptSeperator() . $keys . getEncryptSeperator() . $data . getEncryptSeperator() . getDateKey() . getEncryptSeperator() . $a, substr(sha1(getSiteKey()), 0, getSaltLength()));
 
                // Create number from hash
-               $rcode = hexdec(substr($saltedHash, 8, 9)) / abs(getConfig('rand_no') - $a + sqrt(getConfig('_ADD'))) / pi();
+               $rcode = hexdec(substr($saltedHash, 8, 9)) / abs(getRandNo() - $a + sqrt(getConfig('_ADD'))) / pi();
        }
 
        // At least 10 numbers shall be secure enought!
        $len = getCodeLength();
-       if ($len == '0') $len = $length;
-       if ($len == '0') $len = 10;
+       if ($len == '0') {
+               $len = $length;
+       } // END - if
+       if ($len == '0') {
+               $len = 10;
+       } // END - if
 
        // Cut off requested counts of number
        $return = substr(str_replace('.', '', $rcode), 0, $len);
@@ -947,10 +951,10 @@ function sendRawRequest ($host, $request) {
        //* DEBUG: */ die('SCRIPT=' . $script);
        if ($useProxy === true) {
                // Resolve hostname into IP address
-               $ip = $resolver->resolveHostname(compileRawCode(getConfig('proxy_host')));
+               $ip = $resolver->resolveHostname(compileRawCode(getProxyHost()));
 
                // Connect to host through proxy connection
-               $fp = fsockopen($ip, bigintval(getConfig('proxy_port')), $errno, $errdesc, 30);
+               $fp = fsockopen($ip, bigintval(getProxyPort()), $errno, $errdesc, 30);
        } else {
                // Resolve hostname into IP address
                $ip = $resolver->resolveHostname($host);
@@ -1079,9 +1083,9 @@ function setupProxyTunnel ($host, $resource) {
        $proxyTunnel .= 'Host: ' . $host . getConfig('HTTP_EOL');
 
        // Use login data to proxy? (username at least!)
-       if (getConfig('proxy_username') != '') {
+       if (getProxyUsername() != '') {
                // Add it as well
-               $encodedAuth = base64_encode(compileRawCode(getConfig('proxy_username')) . ':' . compileRawCode(getConfig('proxy_password')));
+               $encodedAuth = base64_encode(compileRawCode(getProxyUsername()) . ':' . compileRawCode(getProxyPassword()));
                $proxyTunnel .= 'Proxy-Authorization: Basic ' . $encodedAuth . getConfig('HTTP_EOL');
        } // END - if
 
@@ -1176,7 +1180,7 @@ function generateHash ($plainText, $salt = '', $hash = true) {
                $server = $_SERVER['PHP_SELF'] . getEncryptSeperator() . detectUserAgent() . getEncryptSeperator() . getenv('SERVER_SOFTWARE') . getEncryptSeperator() . detectRealIpAddress() . getEncryptSeperator() . detectRemoteAddr();
 
                // Build key string
-               $keys   = getConfig('SITE_KEY') . getEncryptSeperator() . getConfig('DATE_KEY') . getEncryptSeperator() . getSecretKey() . getEncryptSeperator() . getFileHash() . getEncryptSeperator() . getDateFromPatchTime() . getEncryptSeperator() . getMasterSalt();
+               $keys   = getSiteKey() . getEncryptSeperator() . getDateKey() . getEncryptSeperator() . getSecretKey() . getEncryptSeperator() . getFileHash() . getEncryptSeperator() . getDateFromPatchTime() . getEncryptSeperator() . getMasterSalt();
 
                // Additional data
                $data = $plainText . getEncryptSeperator() . uniqid(mt_rand(), true) . getEncryptSeperator() . time();
@@ -1185,7 +1189,7 @@ function generateHash ($plainText, $salt = '', $hash = true) {
                $a = time() + getConfig('_ADD') - 1;
 
                // Generate SHA1 sum from modula of number and the prime number
-               $sha1 = sha1(($a % getPrime()) . $server . getEncryptSeperator() . $keys . getEncryptSeperator() . $data . getEncryptSeperator() . getConfig('DATE_KEY') . getEncryptSeperator() . $a);
+               $sha1 = sha1(($a % getPrime()) . $server . getEncryptSeperator() . $keys . getEncryptSeperator() . $data . getEncryptSeperator() . getDateKey() . getEncryptSeperator() . $a);
                //* DEBUG: */ debugOutput('SHA1=' . $sha1.' ('.strlen($sha1).')<br />');
                $sha1 = scrambleString($sha1);
                //* DEBUG: */ debugOutput('Scrambled=' . $sha1.' ('.strlen($sha1).')<br />');
@@ -1519,13 +1523,13 @@ function getMessageFromErrorCode ($code) {
                        $content['timestamp'] = generateDateTime($content['timestamp'], 1);
 
                        // Calculate hours...
-                       $content['hours'] = round(getConfig('url_tlock') / 60 / 60);
+                       $content['hours'] = round(getUrlTlock() / 60 / 60);
 
                        // Minutes...
-                       $content['minutes'] = round((getConfig('url_tlock') - $content['hours'] * 60 * 60) / 60);
+                       $content['minutes'] = round((getUrlTlock() - $content['hours'] * 60 * 60) / 60);
 
                        // And seconds
-                       $content['seconds'] = round(getConfig('url_tlock') - $content['hours'] * 60 * 60 - $content['minutes'] * 60);
+                       $content['seconds'] = round(getUrlTlock() - $content['hours'] * 60 * 60 - $content['minutes'] * 60);
 
                        // Finally contruct the message
                        $message = loadTemplate('tlock_message', true, $content);
@@ -1858,7 +1862,7 @@ function rebuildCache ($cache, $inc = '', $force = false) {
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "inc={$inc} - LOADED!<br />");
                                loadInclude($inc);
                        } else {
-                               // Include not found!
+                               // Include not found
                                logDebugMessage(__FUNCTION__, __LINE__, 'Include ' . $inc . ' not found. cache=' . $cache);
                        }
                } // END - if
@@ -1917,11 +1921,11 @@ function addNewBonusMail ($data, $mode = '', $output = true) {
 
                // Mail inserted into bonus pool
                if ($output === true) {
-                       loadTemplate('admin_settings_saved', false, '{--ADMIN_BONUS_SEND--}');
+                       displayMessage('{--ADMIN_BONUS_SEND--}');
                } // END - if
        } elseif ($output === true) {
                // More entered than can be reached!
-               loadTemplate('admin_settings_saved', false, '{--ADMIN_MORE_SELECTED--}');
+               displayMessage('{--ADMIN_MORE_SELECTED--}');
        } else {
                // Debug log
                logDebugMessage(__FUNCTION__, __LINE__, 'cat=' . $data['cat'] . ',receiver=' . $data['receiver'] . ',data=' . base64_encode(serialize($data)) . ' More selected, than available!');
@@ -1931,7 +1935,9 @@ function addNewBonusMail ($data, $mode = '', $output = true) {
 // Determines referal id and sets it
 function determineReferalId () {
        // Skip this in non-html-mode and outside ref.php
-       if ((!isHtmlOutputMode()) && (basename($_SERVER['PHP_SELF']) != 'ref.php')) return false;
+       if ((!isHtmlOutputMode()) && (basename($_SERVER['PHP_SELF']) != 'ref.php')) {
+               return false;
+       } // END - if
 
        // Check if refid is set
        if ((isset($GLOBALS['refid'])) && ($GLOBALS['refid'] > 0)) {
@@ -1999,6 +2005,15 @@ function doReset () {
        runFilterChain('reset');
 }
 
+// Enables the reset mode (hourly, weekly and monthly) and runs it
+function doHourly () {
+       // Enable the hourly reset mode
+       $GLOBALS['hourly_enabled'] = true;
+
+       // Run filters (one always!)
+       runFilterChain('hourly');
+}
+
 // Our shutdown-function
 function shutdown () {
        // Call the filter chain 'shutdown'
@@ -2126,7 +2141,7 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
 
                        // And skip further processing
                        continue;
-               } elseif (substr($baseFile, 0, strlen($prefix)) != $prefix) {
+               } elseif (!isFilePrefixFound($baseFile, $prefix)) {
                        // Skip this file
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Invalid prefix in file ' . $baseFile . ', prefix=' . $prefix);
                        continue;
@@ -2140,9 +2155,12 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
                        continue;
                }
 
+               // Get file' extension (last 4 chars)
+               $fileExtension = substr($baseFile, -4, 4);
+
                // Is the file a PHP script or other?
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'baseDir=' . $baseDir . ',prefix=' . $prefix . ',baseFile=' . $baseFile);
-               if ((substr($baseFile, -4, 4) == '.php') || (($fileIncludeDirs === true) && (isDirectory($FQFN)))) {
+               if (($fileExtension == '.php') || (($fileIncludeDirs === true) && (isDirectory($FQFN)))) {
                        // Is this a valid include file?
                        if ($extension == '.php') {
                                // Remove both for extension name
@@ -2158,9 +2176,9 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
                                }
                        } else {
                                // We found .php file but should not search for them, why?
-                               debug_report_bug(__FUNCTION__, __LINE__, 'We should find files with extension=' . $extension . ', but we found a PHP script.');
+                               debug_report_bug(__FUNCTION__, __LINE__, 'We should find files with extension=' . $extension . ', but we found a PHP script. (baseFile=' . $baseFile . ')');
                        }
-               } elseif (substr($baseFile, -4, 4) == $extension) {
+               } elseif ($fileExtension == $extension) {
                        // Other, generic file found
                        $files[] = $fileName;
                }
@@ -2177,6 +2195,12 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
        return $files;
 }
 
+// Checks wether $prefix is found in $fileName
+function isFilePrefixFound ($fileName, $prefix) {
+       // @TODO Find a way to cache this
+       return (substr($fileName, 0, strlen($prefix)) == $prefix);
+}
+
 // Maps a module name into a database table name
 function mapModuleToTable ($moduleName) {
        // Map only these, still lame code...
@@ -2298,7 +2322,10 @@ function getModuleFromFileName ($file, $accessLevel) {
 // Encodes an URL for adding session id, etc.
 function encodeUrl ($url, $outputMode = '0') {
        // Do we have already have a PHPSESSID inside or view.php is called? Then abort here
-       if ((strpos($url, session_name()) !== false) || (isRawOutputMode())) return $url;
+       if ((strpos($url, session_name()) !== false) || (isRawOutputMode())) {
+               // Raw output mode detected or session_name() found in URL
+               return $url;
+       } // END - if
 
        // Do we have a valid session?
        if (((!isset($GLOBALS['valid_session'])) || ($GLOBALS['valid_session'] === false) || (!isset($_COOKIE[session_name()]))) && (isSpider() === false)) {
@@ -2309,7 +2336,7 @@ function encodeUrl ($url, $outputMode = '0') {
                        // No question mark
                        $seperator = '?';
                } elseif ((!isHtmlOutputMode()) || ($outputMode != '0')) {
-                       // Non-HTML mode
+                       // Non-HTML mode (or forced non-HTML mode
                        $seperator = '&';
                }