]> git.mxchange.org Git - mailer.git/blobdiff - inc/libs/user_functions.php
Moved "fix" files (which only helps to fix stuff) in own inc/fixes/ folder.
[mailer.git] / inc / libs / user_functions.php
index 6944c96e833d1d20b751f3f459cb3ec1f3e5a717..5c0dcb49467a423e911e4b1a8a058f1c59d9d7c6 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2015 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2016 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -578,19 +578,46 @@ function doConfirmUserAccount ($hash) {
        // Search for an unconfirmed or confirmed account
        $result = sqlQueryEscaped("SELECT `userid`, `refid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `user_hash`='%s' AND (`status`='UNCONFIRMED' OR `status`='CONFIRMED') LIMIT 1",
                array($hash), __FILE__, __LINE__);
-       if (sqlNumRows($result) == 1) {
-               // Ok, he want's to confirm now so we load some data
-               list($userid, $refid) = sqlFetchRow($result);
 
-               // Fetch user data
-               if (!fetchUserData($userid)) {
-                       // Not found, should not happen
-                       reportBug(__FILE__, __LINE__, 'User account ' . $userid . ' not found.');
-               } // END - if
+       // One result should be found
+       if (ifSqlHasZeroNumRows($result)) {
+               // Nothing found or tried to confirm twice?
+               displayMessage('{--GUEST_CONFIRMED_TWICE--}');
+               return;
+       } // END - if
 
-               // Load all data and add points
-               $content = getUserDataArray();
+       // Okay, the user want's to confirm now so we load some data
+       list($userid, $refid) = sqlFetchRow($result);
+
+       // Fetch user data
+       if (!fetchUserData($userid)) {
+               // Not found, should not happen
+               reportBug(__FILE__, __LINE__, 'User account ' . $userid . ' not found.');
+       } // END - if
+
+       // Load all data and add points
+       $content = merge_array($content, getUserDataArray());
 
+       // Is 'user' updated?
+       if (isExtensionInstalledAndNewer('user', '0.6.3')) {
+               // Unlock his account (but only when it is on UNCONFIRMED!)
+               sqlQueryEscaped("UPDATE
+       `{?_MYSQL_PREFIX?}_user_data`
+SET
+       `status`='CONFIRMED',
+       `user_hash`=NULL,
+       `confirmed_timestamp`=NOW(),
+       `confirmed_ip_address`='%s'
+WHERE
+       `user_hash`='%s' AND
+       `status`='UNCONFIRMED'
+LIMIT 1",
+                       array(
+                               determineRealRemoteAddress(),
+                               $hash
+                       ), __FILE__, __LINE__
+               );
+       } else {
                // Unlock his account (but only when it is on UNCONFIRMED!)
                sqlQueryEscaped("UPDATE
        `{?_MYSQL_PREFIX?}_user_data`
@@ -601,68 +628,65 @@ WHERE
        `user_hash`='%s' AND
        `status`='UNCONFIRMED'
 LIMIT 1",
-                       array($hash), __FILE__, __LINE__);
-
-               // Was it updated?
-               if (!ifSqlHasZeroAffectedRows()) {
-                       // Send email if updated
-                       $message = loadEmailTemplate('guest_user_confirmed', $content, bigintval($userid));
-
-                       // And send him right away the confirmation mail
-                       sendEmail($userid, '{--GUEST_THANX_CONFIRM--}', $message);
-
-                       // Maybe he got "referraled"?
-                       if ((isValidId($refid)) && ($refid != $userid)) {
-                               // Select the referral userid
-                               if (fetchUserData($refid)) {
-                                       // Update ref counter...
-                                       updateReferralCounter($refid);
-
-                                       // If version matches add ref bonus to refid's account
-                                       if ((isExtensionInstalledAndNewer('bonus', '0.4.4')) && (isBonusRallyeActive())) {
-                                               // Add points (directly only!)
-                                               sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `bonus_ref`=`bonus_ref`+{?bonus_ref?} WHERE `userid`=%s LIMIT 1",
-                                                       array(bigintval($refid)), __FILE__, __LINE__);
-
-                                               // Subtract points from system
-                                               handleBonusPoints(getBonusRef(), $refid);
-                                       } // END - if
+                       array(
+                               $hash
+                       ), __FILE__, __LINE__
+               );
+       }
 
-                                       // Add one-time referral bonus over referral system or directly
-                                       initReferralSystem();
-                                       addPointsThroughReferralSystem('referral_bonus', $refid, getPointsRef(), bigintval($userid));
-                               } // END - if
-                       } // END - if
+       // Was it updated?
+       if (ifSqlHasZeroAffectedRows()) {
+               // Nobody was found unter this hash key... or our new member want's to confirm twice?
+               displayMessage('{--GUEST_CONFIRMED_TWICE--}');
+               return;
+       } // END - if
+
+       // Load email template
+       $message = loadEmailTemplate('guest_user_confirmed', $content, bigintval($userid));
+
+       // And send him right away the confirmation mail
+       sendEmail($userid, '{--GUEST_THANX_CONFIRM--}', $message);
+
+       // Maybe he got "referraled"?
+       if ((isValidId($refid)) && ($refid != $userid)) {
+               // Select the referral userid
+               if (fetchUserData($refid)) {
+                       // Update ref counter...
+                       updateReferralCounter($refid);
 
-                       if (isExtensionActive('rallye')) {
-                               // Add user to rallye (or not?)
-                               addUserToReferralRallye(bigintval($userid));
+                       // If version matches add ref bonus to refid's account
+                       if ((isExtensionInstalledAndNewer('bonus', '0.4.4')) && (isBonusRallyeActive())) {
+                               // Add points (directly only!)
+                               sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `bonus_ref`=`bonus_ref`+{?bonus_ref?} WHERE `userid`=%s LIMIT 1",
+                                       array(bigintval($refid)), __FILE__, __LINE__);
+
+                               // Subtract points from system
+                               handleBonusPoints(getBonusRef(), $refid);
                        } // END - if
 
-                       // Account confirmed!
-                       if (isExtensionActive('lead')) {
-                               // Set special lead cookie
-                               setSession('lead_userid', bigintval($userid));
+                       // Add one-time referral bonus over referral system or directly
+                       initReferralSystem();
+                       addPointsThroughReferralSystem('referral_bonus', $refid, getPointsRef(), bigintval($userid));
+               } // END - if
+       } // END - if
 
-                               // Lead-Code mode enabled
-                               redirectToUrl('lead-confirm.php');
-                       } else {
-                               $content['message'] = '{--GUEST_CONFIRMED_DONE--}';
-                               $content['userid']  = bigintval($userid);
-                       }
-               } elseif (isExtensionActive('lead')) {
-                       // Set special lead cookie
-                       setSession('lead_userid', bigintval($userid));
+       // @TODO Rewrite this to 2 filters as a possible redirect must always come last
+       if (isExtensionActive('rallye')) {
+               // Add user to rallye (or not?)
+               addUserToReferralRallye(bigintval($userid));
+       } // END - if
 
-                       // Lead-Code mode enabled
-                       redirectToUrl('lead-confirm.php');
-               } else {
-                       // Nobody was found unter this hash key... or our new member want's to confirm twice?
-                       $content['message'] = '{--GUEST_CONFIRMED_TWICE--}';
-               }
+       // Account confirmed!
+       if (isExtensionActive('lead')) {
+               // Set special lead cookie
+               setSession('lead_userid', bigintval($userid));
+
+               // Lead-Code mode enabled
+               redirectToUrl('lead-confirm.php');
        } else {
-               // Nobody was found unter this hash key... or our new member want's to confirm twice?
-               $content['message'] = '{--GUEST_CONFIRMED_TWICE--}';
+               // Regular confirmation
+               $content['message'] = '{--GUEST_CONFIRMED_DONE--}';
+               $content['userid']  = bigintval($userid);
        }
 
        // Load template