getMessage('GUEST_CONFIRMED_FAILED'), 'userid' => 0, ); if (isGetRequestElementSet('hash')) { // Initialize the user id $userid = '0'; // Search for an unconfirmed or confirmed account $result = SQL_QUERY_ESC("SELECT `userid`, `email`, `refid`,`gender` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `user_hash`='%s' AND (`status`='UNCONFIRMED' OR `status`='CONFIRMED') LIMIT 1", array(getRequestElement('hash')), __FILE__, __LINE__); if (SQL_NUMROWS($result) == 1) { // Ok, he want's to confirm now so we load some data list($userid, $email, $rid, $gender) = SQL_FETCHROW($result); // Fetch user data if (!fetchUserData($userid)) { // Not found, should not happen debug_report_bug('User account ' . $userid . ' not found.'); } // END - if // Load all data and add points $content = getUserDataArray(); $content['gender'] = translateGender($content['gender']); $content['points'] = getConfig('points_register'); // Unlock his account (but only when it is on UNCONFIRMED!) SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `status`='CONFIRMED', ref_payout={?ref_payout?}, `user_hash`=NULL WHERE `user_hash`='%s' AND `status`='UNCONFIRMED' LIMIT 1", array(getRequestElement('hash')), __FILE__, __LINE__); if (SQL_AFFECTEDROWS() == 1) { // Send email if updated $message = loadEmailTemplate('confirm-member', $content, bigintval($userid)); // And send him right away the confirmation mail sendEmail($email, getMessage('GUEST_THANX_CONFIRM'), $message); // Maybe he got "referaled"? if (($rid > 0) && ($rid != $userid)) { // Select the referal userid if (fetchUserData($rid)) { // Update ref counter... updateReferalCounter($rid); // Shall I 'pay' the referal points imidiately? if (getConfig('ref_payout') == '0') { // Yes, 'pay' it now $locked = false; } else { // No, 'pay' it later $locked = true; } // If version matches add ref bonus to refid's account if ((getExtensionVersion('bonus') >= '0.4.4') && (getConfig('bonus_active') == 'Y')) { // Add points (directly only!) SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `bonus_ref`=`bonus_ref`+{?bonus_ref?} WHERE `userid`=%s LIMIT 1", array(bigintval($rid)), __FILE__, __LINE__); // Subtract points from system handleBonusPoints(getConfig('bonus_ref')); } // END - if // Add one-time referal bonus over referal system or directly // @TODO Try to rewrite the following unset() unset($GLOBALS['ref_level']); addPointsThroughReferalSystem('referal_bonus', $rid, getConfig('points_ref'), true, bigintval($userid), $locked, getConfig('reg_points_mode')); } // END - if } // END - if if (isExtensionActive('rallye')) { // Add user to rallye (or not?) addUserToReferalRallye(bigintval($userid)); } // END - if // Account confirmed! if (isExtensionActive('lead')) { // Set special lead cookie setSession('lead_userid', bigintval($userid)); // Lead-Code mode enabled redirectToUrl('lead-confirm.php'); } else { $content['message'] = getMessage('GUEST_CONFIRMED_DONE'); $content['userid'] = bigintval($userid); } } elseif (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'] = getMessage('GUEST_CONFIRMED_TWICE'); } } else { // Nobody was found unter this hash key... or our new member want's to confirm twice? $content['message'] = getMessage('GUEST_CONFIRMED_TWICE'); } // Load template loadTemplate('admin_settings_saved', false, $content['message']); } elseif ((isFormSent()) && (isPostRequestElementSet('email'))) { // Confirmation link requested 0 1 2 if (fetchUserData(postRequestElement('email'), 'email')) { // Email address found $content = getUserDataArray(); // Detect status switch ($content['status']) { case 'UNCONFIRMED': // Account not confirmed // Load email template $message = loadEmailTemplate('guest_request_confirm', array('hash' => $content['user_hash']), $content['userid']); // Send email sendEmail(postRequestElement('email'), getMessage('REQUEST_CONFIRM_LINK_SUBJ'), $message); // And set message $content['message'] = getMessage('CONFIRM_LINK_SENT'); break; case 'CONFIRMED': // Account already confirmed $content['message'] = getMessage('LOGIN_ID_CONFIRMED'); break; case 'LOCKED': // Account is locked $content['message'] = getMessage('LOGIN_ID_LOCKED'); break; } // END - switch } else { // Email address not registered $content['message'] = getMessage('EMAIL_ADDRESS_404'); } // Load template loadTemplate('admin_settings_saved', false, $content['message']); } else { // No hash found, the guest may want to enter his email address to re-get his confirmation link? loadTemplate('guest_confirm_link'); } // [EOF] ?>