]> git.mxchange.org Git - mailer.git/blobdiff - inc/functions.php
useProxy is duplicate, because isProxyUsed() is cached, fixed bug in IP resolver...
[mailer.git] / inc / functions.php
index d58f4fd6231ca129fc5b3c8f5f99b2ce6c2bcc92..f35ee954c60d3d74e065fbe730f9f71980a696bd 100644 (file)
@@ -658,8 +658,8 @@ function generateRandomCode ($length, $code, $userid, $extraData = '') {
                $data .= getEncryptSeparator() . getSession('u_hash');
        } // END - if
 
-       // Add referal id, language, theme and userid
-       $data .= getEncryptSeparator() . determineReferalId();
+       // Add referral id, language, theme and userid
+       $data .= getEncryptSeparator() . determineReferralId();
        $data .= getEncryptSeparator() . getLanguage();
        $data .= getEncryptSeparator() . getCurrentTheme();
        $data .= getEncryptSeparator() . getMemberId();
@@ -698,6 +698,7 @@ function generateRandomCode ($length, $code, $userid, $extraData = '') {
 
 // Does only allow numbers
 function bigintval ($num, $castValue = true, $abortOnMismatch = true) {
+       //* DEBUG: */ debugOutput('[' . __FUNCTION__ . ':' . __LINE__ . '] ' . 'num=' . $num . ',castValue=' . intval($castValue) . ',abortOnMismatch=' . intval($abortOnMismatch) . ' - ENTERED!');
        // Filter all numbers out
        $ret = preg_replace('/[^0123456789]/', '', $num);
 
@@ -714,6 +715,7 @@ function bigintval ($num, $castValue = true, $abortOnMismatch = true) {
        } // END - if
 
        // Return result
+       //* DEBUG: */ debugOutput('[' . __FUNCTION__ . ':' . __LINE__ . '] ' . 'num=' . $num . ',castValue=' . intval($castValue) . ',abortOnMismatch=' . intval($abortOnMismatch) . ',ret=' . $ret . ' - EXIT!');
        return $ret;
 }
 
@@ -765,7 +767,7 @@ function createFancyTime ($stamp) {
        foreach ($data as $k => $v) {
                if ($v > 0) {
                        // Value is greater than 0 "eval" data to return string
-                       $ret .= ', ' . $v . ' {--_' . strtoupper($k) . '--}';
+                       $ret .= ', ' . $v . ' {%pipe,translateTimeUnit=' . $k . '%}';
                        break;
                } // END - if
        } // END - foreach
@@ -776,52 +778,13 @@ function createFancyTime ($stamp) {
                $ret = substr($ret, 2);
        } else {
                // Zero seconds
-               $ret = '0 {--_SECONDS--}';
+               $ret = '0 {--TIME_UNIT_SECOND--}';
        }
 
        // Return fancy time string
        return $ret;
 }
 
-// Extract host from script name
-function extractHostnameFromUrl (&$script) {
-       // Use default SERVER_URL by default... ;) So?
-       $url = getServerUrl();
-
-       // Is this URL valid?
-       if (substr($script, 0, 7) == 'http://') {
-               // Use the hostname from script URL as new hostname
-               $url = substr($script, 7);
-               $extract = explode('/', $url);
-               $url = $extract[0];
-               // Done extracting the URL :)
-       } // END - if
-
-       // Extract host name
-       $host = str_replace('http://', '', $url);
-       if (isInString('/', $host)) {
-               $host = substr($host, 0, strpos($host, '/'));
-       } // END - if
-
-       // Generate relative URL
-       //* DEBUG: */ debugOutput('SCRIPT=' . $script);
-       if (substr(strtolower($script), 0, 7) == 'http://') {
-               // But only if http:// is in front!
-               $script = substr($script, (strlen($url) + 7));
-       } elseif (substr(strtolower($script), 0, 8) == 'https://') {
-               // Does this work?!
-               $script = substr($script, (strlen($url) + 8));
-       }
-
-       //* DEBUG: */ debugOutput('SCRIPT=' . $script);
-       if (substr($script, 0, 1) == '/') {
-               $script = substr($script, 1);
-       } // END - if
-
-       // Return host name
-       return $host;
-}
-
 // Taken from www.php.net isInStringIgnoreCase() user comments
 function isEmailValid ($email) {
        // Check first part of email address
@@ -838,7 +801,7 @@ function isEmailValid ($email) {
 }
 
 // Function taken from user comments on www.php.net / function isInStringIgnoreCase()
-function isUrlValid ($url, $compile=true) {
+function isUrlValid ($url, $compile = true) {
        // Trim URL a little
        $url = trim(urldecode($url));
        //* DEBUG: */ debugOutput($url);
@@ -1172,7 +1135,7 @@ function getMessageFromErrorCode ($code) {
        switch ($code) {
                case '': break;
                case getCode('LOGOUT_DONE')        : $message = '{--LOGOUT_DONE--}'; break;
-               case getCode('LOGOUT_FAILED')      : $message = '<span class="notice">{--LOGOUT_FAILED--}</span>'; break;
+               case getCode('LOGOUT_FAILED')      : $message = '<span class="bad">{--LOGOUT_FAILED--}</span>'; break;
                case getCode('DATA_INVALID')       : $message = '{--MAIL_DATA_INVALID--}'; break;
                case getCode('POSSIBLE_INVALID')   : $message = '{--MAIL_POSSIBLE_INVALID--}'; break;
                case getCode('USER_404')           : $message = '{--USER_404--}'; break;
@@ -1477,7 +1440,7 @@ function convertSelectionsToEpocheTime (array &$postData, array &$content, &$id,
        if (in_array($test, array('_ye', '_mo', '_we', '_da', '_ho', '_mi', '_se'))) {
                // Found a multi-selection for timings?
                $test = substr($id, 0, -3);
-               if ((isset($postData[$test.'_ye'])) && (isset($postData[$test.'_mo'])) && (isset($postData[$test.'_we'])) && (isset($postData[$test.'_da'])) && (isset($postData[$test.'_ho'])) && (isset($postData[$test.'_mi'])) && (isset($postData[$test.'_se'])) && ($test != $test2)) {
+               if ((isset($postData[$test . '_ye'])) && (isset($postData[$test . '_mo'])) && (isset($postData[$test . '_we'])) && (isset($postData[$test . '_da'])) && (isset($postData[$test . '_ho'])) && (isset($postData[$test . '_mi'])) && (isset($postData[$test . '_se'])) && ($test != $test2)) {
                        // Generate timestamp
                        $postData[$test] = createEpocheTimeFromSelections($test, $postData);
                        $content[] = sprintf("`%s`='%s'", $test, $postData[$test]);
@@ -1609,8 +1572,8 @@ function determineRealRemoteAddress ($remoteAddr = false) {
 // This is a high-level function!
 function addNewBonusMail ($data, $mode = '', $output = true) {
        // Use mode from data if not set and availble ;-)
-       if ((empty($mode)) && (isset($data['mode']))) {
-               $mode = $data['mode'];
+       if ((empty($mode)) && (isset($data['mail_mode']))) {
+               $mode = $data['mail_mode'];
        } // END - if
 
        // Generate receiver list
@@ -1644,96 +1607,96 @@ function addNewBonusMail ($data, $mode = '', $output = true) {
        }
 }
 
-// Determines referal id and sets it
-function determineReferalId () {
+// Determines referral id and sets it
+function determineReferralId () {
        // Skip this in non-html-mode and outside ref.php
        if ((!isHtmlOutputMode()) && (basename($_SERVER['PHP_SELF']) != 'ref.php')) {
                return false;
        } // END - if
 
        // Check if refid is set
-       if (isReferalIdValid()) {
+       if (isReferralIdValid()) {
                // This is fine...
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from GLOBALS (' . getReferalId() . ')');
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from GLOBALS (' . getReferralId() . ')');
        } elseif (isPostRequestElementSet('refid')) {
-               // Get referal id from POST element refid
+               // Get referral id from POST element refid
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from POST data (' . postRequestElement('refid') . ')');
-               setReferalId(secureString(postRequestElement('refid')));
+               setReferralId(secureString(postRequestElement('refid')));
        } elseif (isGetRequestElementSet('refid')) {
-               // Get referal id from GET parameter refid
+               // Get referral id from GET parameter refid
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from GET data (' . getRequestElement('refid') . ')');
-               setReferalId(secureString(getRequestElement('refid')));
+               setReferralId(secureString(getRequestElement('refid')));
        } elseif (isGetRequestElementSet('ref')) {
-               // Set refid=ref (the referal link uses such variable)
+               // Set refid=ref (the referral link uses such variable)
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using ref from GET data (' . getRequestElement('refid') . ')');
-               setReferalId(secureString(getRequestElement('ref')));
+               setReferralId(secureString(getRequestElement('ref')));
        } elseif ((isGetRequestElementSet('user')) && (basename($_SERVER['PHP_SELF']) == 'click.php')) {
                // The variable user comes from  click.php
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using user from GET data (' . getRequestElement('user') . ')');
-               setReferalId(bigintval(getRequestElement('user')));
+               setReferralId(bigintval(getRequestElement('user')));
        } elseif ((isSessionVariableSet('refid')) && (isValidUserId(getSession('refid')))) {
                // Set session refid as global
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from SESSION data (' . getSession('refid') . ')');
-               setReferalId(bigintval(getSession('refid')));
-       } elseif (isRandomReferalIdEnabled()) {
+               setReferralId(bigintval(getSession('refid')));
+       } elseif (isRandomReferralIdEnabled()) {
                // Select a random user which has confirmed enougth mails
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Checking random referal id');
-               setReferalId(determineRandomReferalId());
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Checking random referral id');
+               setReferralId(determineRandomReferralId());
        } elseif ((isExtensionInstalledAndNewer('sql_patches', '0.1.2')) && (isValidUserId(getDefRefid()))) {
                // Set default refid as refid in URL
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using default refid (' . getDefRefid() . ')');
-               setReferalId(getDefRefid());
+               setReferralId(getDefRefid());
        } else {
                // No default id when sql_patches is not installed or none set
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using NULL as refid');
-               setReferalId(NULL);
+               setReferralId(NULL);
        }
 
        // Set cookie when default refid > 0
-       if ((!isSessionVariableSet('refid')) || (!isValidUserId(getReferalId())) || ((!isValidUserId(getSession('refid'))) && (isExtensionInstalledAndNewer('sql_patches', '0.1.2')) && (isValidUserId(getDefRefid())))) {
+       if ((!isSessionVariableSet('refid')) || (!isValidUserId(getReferralId())) || ((!isValidUserId(getSession('refid'))) && (isExtensionInstalledAndNewer('sql_patches', '0.1.2')) && (isValidUserId(getDefRefid())))) {
                // Default is not found
                $found = false;
 
                // Do we have nickname or userid set?
-               if ((isExtensionActive('nickname')) && (isNicknameUsed(getReferalId()))) {
+               if ((isExtensionActive('nickname')) && (isNicknameUsed(getReferralId()))) {
                        // Nickname in URL, so load the id
-                       $found = fetchUserData(getReferalId(), 'nickname');
+                       $found = fetchUserData(getReferralId(), 'nickname');
 
-                       // If we found it, use the userid as referal id
+                       // If we found it, use the userid as referral id
                        if ($found === true) {
                                // Set the userid as 'refid'
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from user account by nickname (' . getUserData('userid') . ')');
-                               setReferalId(getUserData('userid'));
+                               setReferralId(getUserData('userid'));
                        } // END - if
-               } elseif (isValidUserId(getReferalId())) {
+               } elseif (isValidUserId(getReferralId())) {
                        // Direct userid entered
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using direct userid (' . getReferalId() . ')');
-                       $found = fetchUserData(getReferalId());
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using direct userid (' . getReferralId() . ')');
+                       $found = fetchUserData(getReferralId());
                }
 
                // Is the record valid?
                if ((($found === false) || (!isUserDataValid())) && (isExtensionInstalledAndNewer('sql_patches', '0.1.2'))) {
-                       // No, then reset referal id
+                       // No, then reset referral id
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using default refid (' . getDefRefid() . ')');
-                       setReferalId(getDefRefid());
+                       setReferralId(getDefRefid());
                } // END - if
 
                // Set cookie
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Saving refid to session (' . getReferalId() . ') #1');
-               setSession('refid', getReferalId());
-       } elseif ((!isReferalIdValid()) || (!fetchUserData(getReferalId()))) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Saving refid to session (' . getReferralId() . ') #1');
+               setSession('refid', getReferralId());
+       } elseif ((!isReferralIdValid()) || (!fetchUserData(getReferralId()))) {
                // Not valid!
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Not valid referal id (' . getReferalId() . '), setting NULL in session');
-               setReferalId(NULL);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Not valid referral id (' . getReferralId() . '), setting NULL in session');
+               setReferralId(NULL);
                setSession('refid', NULL);
        } else {
                // Set it from GLOBALS array in session
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Saving refid to session (' . getReferalId() . ') #2');
-               setSession('refid', getReferalId());
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Saving refid to session (' . getReferralId() . ') #2');
+               setSession('refid', getReferralId());
        }
 
        // Return determined refid
-       return getReferalId();
+       return getReferralId();
 }
 
 // Enables the reset mode and runs it
@@ -1830,19 +1793,32 @@ function isExtraTitleSet () {
        return ((isset($GLOBALS['extra_title'])) && (!empty($GLOBALS['extra_title'])));
 }
 
-// Reads a directory recursively by default and searches for files not matching
-// an exclusion pattern. You can now keep the exclusion pattern empty for reading
-// a whole directory.
+/**
+ * Reads a directory recursively by default and searches for files not matching
+ * an exclusion pattern. You can now keep the exclusion pattern empty for reading
+ * a whole directory.
+ *
+ * @param      $baseDir                        Relative base directory to PATH to scan from
+ * @param      $prefix                         Prefix for all positive matches (which files should be found)
+ * @param      $fileIncludeDirs        Wether to include directories in the final output array
+ * @param      $addBaseDir                     Wether to add $baseDir to all array entries
+ * @param      $excludeArray           Excluded files and directories, these must be full files names, e.g. 'what-' will exclude all files named 'what-' but won't exclude 'what-foo.php'
+ * @param      $extension                      File extension for all positive matches
+ * @param      $excludePattern         Regular expression to exclude more files (preg_match())
+ * @param      $recursive                      Wether to scan recursively
+ * @param      $suffix                         Suffix for positive matches ($extension will be appended, too)
+ * @return     $foundMatches           All found positive matches for above criteria
+ */
 function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $addBaseDir = true, $excludeArray = array(), $extension = '.php', $excludePattern = '@(\.|\.\.)$@', $recursive = true, $suffix = '') {
-       // Add default entries we should exclude
-       $excludeArray[] = '.';
-       $excludeArray[] = '..';
-       $excludeArray[] = '.svn';
-       $excludeArray[] = '.htaccess';
+       // Add default entries we should always exclude
+       $excludeArray[] = '.';         // Current directory
+       $excludeArray[] = '..';        // Parent directory
+       $excludeArray[] = '.svn';      // Directories created by Subversion
+       $excludeArray[] = '.htaccess'; // Directory protection files (mostly)
 
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'baseDir=' . $baseDir . ',prefix=' . $prefix . ' - Entered!');
-       // Init includes
-       $files = array();
+       // Init found includes
+       $foundMatches = array();
 
        // Open directory
        $dirPointer = opendir(getPath() . $baseDir) or debug_report_bug(__FUNCTION__, __LINE__, 'Cannot read directory ' . basename($baseDir) . '.');
@@ -1865,10 +1841,8 @@ 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: */ debugOutput('baseDir:' . $baseDir);
-                       //* DEBUG: */ debugOutput('baseFile:' . $baseFile);
-                       //* DEBUG: */ debugOutput('FQFN:' . $FQFN);
+                       // Debug message
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'baseDir=' . $baseDir . ',baseFile=' . $baseFile . ',FQFN=' . $FQFN);
 
                        // Exclude this one
                        continue;
@@ -1877,7 +1851,7 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
                // Skip also files with non-matching prefix genericly
                if (($recursive === true) && (isDirectory($FQFN))) {
                        // Is a redirectory so read it as well
-                       $files = merge_array($files, getArrayFromDirectory($baseDir . $baseFile . '/', $prefix, $fileIncludeDirs, $addBaseDir, $excludeArray, $extension, $excludePattern, $recursive));
+                       $foundMatches = merge_array($foundMatches, getArrayFromDirectory($baseDir . $baseFile . '/', $prefix, $fileIncludeDirs, $addBaseDir, $excludeArray, $extension, $excludePattern, $recursive));
 
                        // And skip further processing
                        continue;
@@ -1909,10 +1883,10 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
                                // Add file with or without base path
                                if ($addBaseDir === true) {
                                        // With base path
-                                       $files[] = $fileName;
+                                       $foundMatches[] = $fileName;
                                } else {
                                        // No base path
-                                       $files[] = $baseFile;
+                                       $foundMatches[] = $baseFile;
                                }
                        } else {
                                // We found .php file but should not search for them, why?
@@ -1920,7 +1894,7 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
                        }
                } elseif ($fileExtension == $extension) {
                        // Other, generic file found
-                       $files[] = $fileName;
+                       $foundMatches[] = $fileName;
                }
        } // END - while
 
@@ -1928,11 +1902,11 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
        closedir($dirPointer);
 
        // Sort array
-       sort($files);
+       sort($foundMatches);
 
        // Return array with include files
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '- Left!');
-       return $files;
+       return $foundMatches;
 }
 
 // Checks wether $prefix is found in $fileName
@@ -2171,7 +2145,7 @@ function handleFieldWithBraces ($field) {
 }
 
 // Converts a zero or NULL to word 'NULL'
-function makeZeroToNull ($number) {
+function convertZeroToNull ($number) {
        // Is it a valid username?
        if ((!is_null($number)) && (!empty($number)) && ($number > 0)) {
                // Always secure it
@@ -2186,7 +2160,7 @@ function makeZeroToNull ($number) {
 }
 
 // Converts a NULL to zero
-function makeNullToZero ($number) {
+function convertNullToZero ($number) {
        // Is it a valid username?
        if ((!is_null($number)) && (!empty($number)) && ($number > 0)) {
                // Always secure it
@@ -2400,18 +2374,18 @@ function determinePointsColumnFromSubjectLocked ($subject, $locked) {
        return $pointsColumn;
 }
 
-// Setter for referal id (no bigintval, or nicknames will fail!)
-function setReferalId ($refid) {
+// Setter for referral id (no bigintval, or nicknames will fail!)
+function setReferralId ($refid) {
        $GLOBALS['refid'] = $refid;
 }
 
 // Checks if 'refid' is valid
-function isReferalIdValid () {
-       return ((isset($GLOBALS['refid'])) && (getReferalId() !== NULL) && (getReferalId() > 0));
+function isReferralIdValid () {
+       return ((isset($GLOBALS['refid'])) && (getReferralId() !== NULL) && (getReferralId() > 0));
 }
 
-// Getter for referal id
-function getReferalId () {
+// Getter for referral id
+function getReferralId () {
        return $GLOBALS['refid'];
 }