]> git.mxchange.org Git - mailer.git/blobdiff - inc/functions.php
Fixed handling of nicknames as 'refid':
[mailer.git] / inc / functions.php
index be1223d7b40a3a7ca61983734dae43382adf51bc..1d535c60b6212029582cab863dfe7d3bc728a1d8 100644 (file)
@@ -1658,60 +1658,69 @@ function determineReferalId () {
        } // END - if
 
        // Check if refid is set
-       if ((isset($GLOBALS['refid'])) && ($GLOBALS['refid'] > 0)) {
+       if (isReferalIdValid()) {
                // This is fine...
        } elseif (isPostRequestParameterSet('refid')) {
                // Get referal id from POST element refid
-               $GLOBALS['refid'] = secureString(postRequestParameter('refid'));
+               setReferalId(secureString(postRequestParameter('refid')));
        } elseif (isGetRequestParameterSet('refid')) {
                // Get referal id from GET parameter refid
-               $GLOBALS['refid'] = secureString(getRequestParameter('refid'));
+               setReferalId(secureString(getRequestParameter('refid')));
        } elseif (isGetRequestParameterSet('ref')) {
                // Set refid=ref (the referal link uses such variable)
-               $GLOBALS['refid'] = secureString(getRequestParameter('ref'));
+               setReferalId(secureString(getRequestParameter('ref')));
        } elseif ((isGetRequestParameterSet('user')) && (basename($_SERVER['PHP_SELF']) == 'click.php')) {
                // The variable user comes from  click.php
-               $GLOBALS['refid'] = bigintval(getRequestParameter('user'));
+               setReferalId(bigintval(getRequestParameter('user')));
        } elseif ((isSessionVariableSet('refid')) && (isValidUserId(getSession('refid')))) {
                // Set session refid als global
-               $GLOBALS['refid'] = bigintval(getSession('refid'));
+               setReferalId(bigintval(getSession('refid')));
        } elseif (isRandomReferalIdEnabled()) {
                // Select a random user which has confirmed enougth mails
-               $GLOBALS['refid'] = determineRandomReferalId();
+               setReferalId(determineRandomReferalId());
        } elseif ((isExtensionInstalledAndNewer('sql_patches', '0.1.2')) && (isValidUserId(getDefRefid()))) {
                // Set default refid as refid in URL
-               $GLOBALS['refid'] = getDefRefid();
+               setReferalId(getDefRefid());
        } else {
                // No default id when sql_patches is not installed or none set
-               $GLOBALS['refid'] = null;
+               setReferalId(null);
        }
 
        // Set cookie when default refid > 0
-       if (!isSessionVariableSet('refid') || (isValidUserId($GLOBALS['refid'])) || ((!isValidUserId(getSession('refid'))) && (isExtensionInstalledAndNewer('sql_patches', '0.1.2')) && (isValidUserId(getDefRefid())))) {
+       if (!isSessionVariableSet('refid') || (!isValidUserId(getReferalId())) || ((!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($GLOBALS['refid']))) {
+               if ((isExtensionActive('nickname')) && (isNicknameUsed(getReferalId()))) {
                        // Nickname in URL, so load the id
-                       $found = fetchUserData($GLOBALS['refid'], 'nickname');
-               } elseif (isValidUserId($GLOBALS['refid'])) {
+                       $found = fetchUserData(getReferalId(), 'nickname');
+
+                       // If we found it, use the userid as referal id
+                       if ($found === true) {
+                               // Set the userid as 'refid'
+                               setReferalId(getUserData('userid'));
+                       } // END - if
+               } elseif (isValidUserId(getReferalId())) {
                        // Direct userid entered
-                       $found = fetchUserData($GLOBALS['refid']);
+                       $found = fetchUserData(getReferalId());
                }
 
                // Is the record valid?
                if ((($found === false) || (!isUserDataValid())) && (isExtensionInstalledAndNewer('sql_patches', '0.1.2'))) {
                        // No, then reset referal id
-                       $GLOBALS['refid'] = getDefRefid();
+                       setReferalId(getDefRefid());
                } // END - if
 
                // Set cookie
-               setSession('refid', $GLOBALS['refid']);
-       } // END - if
+               setSession('refid', getReferalId());
+       } elseif (!isReferalIdValid()) {
+               // Not valid!
+               setSession('refid', 0);
+       }
 
        // Return determined refid
-       return $GLOBALS['refid'];
+       return getReferalId();
 }
 
 // Enables the reset mode and runs it
@@ -2343,6 +2352,21 @@ function determinePointsColumnFromSubjectLocked ($subject, $locked) {
        return $pointsColumn;
 }
 
+// Setter for referal id (no bigintval, or nicknames will fail!)
+function setReferalId ($refid) {
+       $GLOBALS['refid'] = $refid;
+}
+
+// Checks if 'refid' is valid
+function isReferalIdValid () {
+       return ((isset($GLOBALS['refid'])) && (getReferalId() !== NULL) && (getReferalId() > 0));
+}
+
+// Getter for referal id
+function getReferalId () {
+       return $GLOBALS['refid'];
+}
+
 //-----------------------------------------------------------------------------
 // Automatically re-created functions, all taken from user comments on www.php.net
 //-----------------------------------------------------------------------------