= $_CONFIG['doubler_min']) && ($_POST['points'] <= $_CONFIG['doubler_max'])); // Check all together if ((!empty($uid)) && ($password == generateHash($_POST['pass'], substr($password, 0, -40))) && ($status == "CONFIRMED") && ($probe_points)) { // Nickname resolved to a unique userid or direct userid entered by the member $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 - $_CONFIG['doubler_left'] - $_POST['points'] * $_CONFIG['doubler_charge']) >= 0) { // Enough points are left so let's continue with the doubling process // Create doubling "account" width *DOUBLED* points $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_doubler (userid, refid, points, remote_ip, timemark, completed, is_ref) VALUES ('%s','%s','%s','".$_SERVER['REMOTE_ADDR']."', UNIX_TIMESTAMP(), 'N','N')", array($uid, bigintval($GLOBALS['refid']), bigintval($_POST['points'] * 2)), __FILE__, __LINE__); // Subtract entered points SUB_POINTS($uid, $_POST['points']); // Add points to "total payed" including charge $points = $_POST['points'] - $_POST['points'] * $_CONFIG['doubler_charge']; UPDATE_CONFIG("doubler_points", $points, "+"); $_CONFIG['doubler_points'] += $points; // Add second line for the referral but only when uid != refid if (($GLOBALS['refid'] > 0) && ($GLOBALS['refid'] != $uid)) { // Okay add a refid line and apply refid percents $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_doubler (userid,refid,points,remote_ip,timemark,completed,is_ref) VALUES ('%s',0,'%s','".$_SERVER['REMOTE_ADDR']."',UNIX_TIMESTAMP(),'N','Y')", array(bigintval($GLOBALS['refid']), bigintval($_POST['points'] * 2 * $_CONFIG['doubler_ref'])), __FILE__, __LINE__); // And that's why we dont't want to you more than one referral level of doubler-points. ^^^ } // END - if // Update usage counter UPDATE_CONFIG("doubler_counter", 1, "+"); $_CONFIG['doubler_counter']++; // Set constant define('__DOUBLER_MSG', LOAD_TEMPLATE("doubler_reflink", true, $_POST['userid'])); } else { // Not enougth points left define('__ERROR_MSG', DOUBLER_FORM_NO_POINTS_LEFT); } } elseif ($status == "CONFIRMED") { // Account is unconfirmed! define('__ERROR_MSG', DOUBLER_FORM_WRONG_PASS); } elseif ($status == "UNCONFIRMED") { // Account is unconfirmed! define('__ERROR_MSG', DOUBLER_FORM_STATUS_UNCONFIRMED); } elseif ($status == "LOCKED") { // Account is locked by admin / holiday! define('__ERROR_MSG', DOUBLER_FORM_STATUS_LOCKED); } elseif ($_POST['points'] < $_CONFIG['doubler_min']) { // Not enougth points entered define('__ERROR_MSG', DOUBLER_FORM_POINTS_MIN); } elseif ($_POST['points'] > $_CONFIG['doubler_max']) { // Too much points entered define('__ERROR_MSG', DOUBLER_FORM_POINTS_MAX); } elseif ($probe_nickname) { // Cannot resolv nickname -> userid define('__ERROR_MSG', DOUBLER_FORM_404_NICKNAME); } else { // Wrong password or account not found define('__ERROR_MSG', DOUBLER_FORM_404_MEMBER); } } elseif (empty($_POST['userid'])) { // Login not entered define('__ERROR_MSG', DOUBLER_FORM_404_LOGIN); } elseif (empty($_POST['pass'])) { // Password not entered define('__ERROR_MSG', DOUBLER_FORM_404_PASSWORD); } elseif (empty($_POST['points'])) { // points not entered define('__ERROR_MSG', DOUBLER_FORM_404_POINTS); } } // Set messages to nothing if (!defined('__DOUBLER_MSG')) define('__DOUBLER_MSG', ""); if (!defined('__ERROR_MSG')) define('__ERROR_MSG' , ""); // Shall I check for points immediately? if ($_CONFIG['doubler_send_mode'] == "DIRECT") require(PATH."inc/doubler_send.php"); // Output header include(PATH."inc/header.php"); // Banner in text define('__DOUBLER_BANNER', LOAD_TEMPLATE("doubler_banner", true)); // Load header/footer templates define('__DOUBLER_HEADER', LOAD_TEMPLATE("doubler_header", true)); define('__DOUBLER_FOOTER', LOAD_TEMPLATE("doubler_footer", true)); if (!empty($uid)) { // Transfer userid/nickname to constant define('__REFID', $uid); } elseif (!empty($GLOBALS['refid'])) { // Transfer userid/nickname to constant define('__REFID', $GLOBALS['refid']); } else { // Transfer default refid to constant define('__REFID', $_CONFIG['def_refid']); } // Percent values etc. define('__CHARGE_VALUE', TRANSLATE_COMMA($_CONFIG['doubler_charge'] * 100)); define('__REF_VALUE' , TRANSLATE_COMMA($_CONFIG['doubler_ref'] * 100)); define('__TOTAL_VALUE' , TRANSLATE_COMMA($_CONFIG['doubler_points'])); define('__MIN_VALUE' , TRANSLATE_COMMA($_CONFIG['doubler_min'])); define('__MAX_VALUE' , TRANSLATE_COMMA($_CONFIG['doubler_max'])); // Text "Enter login" if (EXT_IS_ACTIVE("nickname")) { // Choose login/nickname define('DOUBLER_ENTER_LOGIN', GUEST_ENTER_LOGIN_NICKNAME); } else { // Simple login ID define('DOUBLER_ENTER_LOGIN', GUEST_ENTER_LOGIN); } // Which mail-send-mode did the admin setup? switch ($_CONFIG['doubler_send_mode']) { case "DIRECT": define('DOUBLER_PAYOUT_TIME', DOUBLER_PAYOUT_TIME_DIRECT); break; case "RESET": define('DOUBLER_PAYOUT_TIME', DOUBLER_PAYOUT_TIME_RESET); break; } // Generate table with already payed out doubles define('__DOUBLER_PAYOUT_HISTORY', DOUBLER_GENERATE_TABLE("0", "Y", "N", "DESC")); // Generate timemark define('__TIMEOUT_MARK', CREATE_FANCY_TIME($_CONFIG['doubler_timeout'])); // Usage counter define('__DOUBLER_COUNTER', $_CONFIG['doubler_counter']); // Points left to doubler define('__LEFT_VALUE', TRANSLATE_COMMA(DOUBLER_GET_TOTAL_POINTS_LEFT())); // Output neccessary form for this LOAD_TEMPLATE("doubler_index"); // Output footer include(PATH."inc/footer.php"); } else { // You have to configure first! LOAD_URL("install.php"); } // Really all done here... ;-) ?>