- // Load data
- list($uid, $status, $password) = SQL_FETCHROW($result);
- $uid = bigintval($uid);
-
- // Free result
- SQL_FREERESULT($result);
-
- // Remove any dots and unwanted chars from the points
- REQUEST_SET_POST('points', bigintval(round(convertCommaToDot(REQUEST_POST('points')))));
-
- // Probe for enough points
- $probe_points = ((REQUEST_POST('points') >= getConfig('doubler_min')) && (REQUEST_POST('points') <= getConfig('doubler_max')));
-
- // Check all together
- if ((!empty($uid)) && ($password == generateHash(REQUEST_POST('pass'), substr($password, 0, -40))) && ($status == 'CONFIRMED') && ($probe_points)) {
- // Nickname resolved to a unique userid or direct userid entered by the member
- $GLOBALS['doubler_uid'] = $uid;
-
- // Calulcate points
- $points = GET_TOTAL_DATA($uid, 'user_points', 'points') - GET_TOTAL_DATA($uid, 'user_data', 'used_points');
-
- // So let's continue with probing his points amount
- if (($points - getConfig('doubler_left') - REQUEST_POST('points') * getConfig('doubler_charge')) >= 0)
- // Enough points are left so let's continue with the doubling process
- // Create doubling "account" width *DOUBLED* points
- SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_doubler` (userid, refid, points, remote_ip, timemark, completed, is_ref) VALUES ('%s','%s','%s','".detectRemoteAddr()."', UNIX_TIMESTAMP(), 'N','N')",
- array($uid, bigintval($GLOBALS['refid']), bigintval(REQUEST_POST('points') * 2)), __FILE__, __LINE__);
-
- // Subtract entered points
- SUB_POINTS('doubler', $uid, REQUEST_POST('points'));
-
- // Add points to "total payed" including charge
- $points = REQUEST_POST('points') - REQUEST_POST('points') * getConfig('doubler_charge');
- updateConfiguration('doubler_points', $points, '+');
- incrementConfigEntry('doubler_points', $points);
-
- // Add second line for the referal but only when uid != refid
- if (($GLOBALS['refid'] > 0) && ($GLOBALS['refid'] != $uid)) {
- // Okay add a refid line and apply refid percents
- SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_doubler` (userid, refid, points, remote_ip, timemark, completed, is_ref) VALUES ('%s',0,'%s','".detectRemoteAddr()."',UNIX_TIMESTAMP(),'N','Y')",
- array(
- bigintval($GLOBALS['refid']),
- bigintval(REQUEST_POST('points') * 2 * getConfig('doubler_ref'))
- ), __FILE__, __LINE__);
-
- // And that's why we don't want to you more than one referal level of doubler-points. ^^^
- } // END - if
-
- // Update usage counter
- updateConfiguration('doubler_counter', 1, '+');
-
- // Set constant
- define('__DOUBLER_MSG', LOAD_TEMPLATE('doubler_reflink', true, REQUEST_POST('userid')));
- } else {
- // Not enougth points left
- define('__ERROR_MSG', getMessage('DOUBLER_FORM_NO_POINTS_LEFT'));
- }
- } elseif ($status == 'CONFIRMED') {
- // Account is unconfirmed!
- define('__ERROR_MSG', getMessage('DOUBLER_FORM_WRONG_PASS'));
- } elseif ($status == 'UNCONFIRMED') {
- // Account is unconfirmed!
- define('__ERROR_MSG', getMessage('DOUBLER_FORM_STATUS_UNCONFIRMED'));
- } elseif ($status == 'LOCKED') {
- // Account is locked by admin / holiday!
- define('__ERROR_MSG', getMessage('DOUBLER_FORM_STATUS_LOCKED'));
- } elseif (REQUEST_POST('points') < getConfig('doubler_min')) {
- // Not enougth points entered
- define('__ERROR_MSG', getMessage('DOUBLER_FORM_POINTS_MIN'));
- } elseif (REQUEST_POST('points') > getConfig('doubler_max')) {
- // Too much points entered
- define('__ERROR_MSG', getMessage('DOUBLER_FORM_POINTS_MAX'));
- } elseif ($probe_nickname) {
- // Cannot resolv nickname -> userid
- define('__ERROR_MSG', getMessage('DOUBLER_FORM_404_NICKNAME'));
- } else {
- // Wrong password or account not found
- define('__ERROR_MSG', getMessage('DOUBLER_FORM_404_MEMBER'));
- }
- } elseif (!REQUEST_ISSET_POST(('userid'))) {
- // Login not entered
- define('__ERROR_MSG', getMessage('DOUBLER_FORM_404_LOGIN'));
- } elseif (!REQUEST_ISSET_POST(('pass'))) {
- // Password not entered
- define('__ERROR_MSG', getMessage('DOUBLER_FORM_404_PASSWORD'));
- } elseif (!REQUEST_ISSET_POST(('points'))) {
- // points not entered
- define('__ERROR_MSG', getMessage('DOUBLER_FORM_404_POINTS'));
- }
- }