X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Flibs%2Fuser_functions.php;h=5c0dcb49467a423e911e4b1a8a058f1c59d9d7c6;hp=5041a8c3a66b6f509535af2a3b2ec032f563c283;hb=a524135c24dd0a8fa359c9a92399467d50fd69e0;hpb=c1ce3b98c13fabf834d11a847eb2d297ead8d53d diff --git a/inc/libs/user_functions.php b/inc/libs/user_functions.php index 5041a8c3a6..5c0dcb4946 100644 --- a/inc/libs/user_functions.php +++ b/inc/libs/user_functions.php @@ -16,7 +16,7 @@ * $Author:: $ * * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2009 by Roland Haeder * - * Copyright (c) 2009 - 2013 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