Ejemplo n.º 1
0
    try {
        $account =& SmrAccount::createAccount($login, $password, $email, $first_name, $last_name, $address, $city, $postal_code, $country_code, $icq, $timez, $referral);
    } catch (Exception $e) {
        $msg = 'Invalid referral id!';
        header('Location: ' . URL . '/error.php?msg=' . rawurlencode(htmlspecialchars($msg, ENT_QUOTES)));
        exit;
    }
    $account->increaseSmrRewardCredits(2 * CREDITS_PER_DOLLAR);
    // Give $2 worth of "reward" credits for joining.
    if ($socialLogin) {
        $account->addAuthMethod($_SESSION['socialLogin']->getLoginType(), $_SESSION['socialLogin']->getUserID());
        $account->setValidated(true);
        session_destroy();
    }
    // register session
    SmrSession::$account_id = $account->getAccountID();
    // save ip
    $account->updateIP();
    // send email with validation code to user
    mail($email, 'New Space Merchant Realms User', 'Your validation code is: ' . $account->getValidationCode() . EOL . 'The Space Merchant Realms server is on the web at ' . URL . '/' . EOL . 'Please verify within the next 7 days or your account will be automatically deleted.', 'From: support@smrealms.de');
    // remember when we sent validation code
    $db->query('INSERT INTO notification (notification_type, account_id, time) ' . 'VALUES(\'validation_code\', ' . $db->escapeNumber(SmrSession::$account_id) . ', ' . $db->escapeNumber(TIME) . ')');
    // insert into the account stats table
    $db->query('INSERT INTO account_has_stats (account_id, HoF_name) VALUES(' . $db->escapeNumber(SmrSession::$account_id) . ', ' . $db->escape_string($account->getLogin()) . ')');
    $container = create_container('login_processing2.php');
    $container['login'] = $login;
    $container['password'] = $password;
    forwardURL($container);
} catch (Exception $e) {
    handleException($e);
}
Ejemplo n.º 2
0
             exit;
         }
     }
 } else {
     $login = isset($_REQUEST['login']) ? $_REQUEST['login'] : (isset($var['login']) ? $var['login'] : '');
     $password = isset($_REQUEST['password']) ? $_REQUEST['password'] : (isset($var['password']) ? $var['password'] : '');
     // has the user submitted empty fields
     if (empty($login) || empty($password)) {
         $msg = 'Please enter login and password!';
         header('Location: ' . URL . '/login.php?msg=' . rawurlencode(htmlspecialchars($msg, ENT_QUOTES)));
         exit;
     }
     $db->query('SELECT account_id,old_account_id FROM account ' . 'WHERE login = '******' AND ' . 'password = '******' LIMIT 1');
     if ($db->nextRecord()) {
         // register session
         SmrSession::$account_id = $db->getField('account_id');
         SmrSession::$old_account_id = $db->getField('old_account_id');
     } else {
         if (USE_COMPATIBILITY) {
             if (!SmrAccount::upgradeAccount($login, $password)) {
                 $msg = 'Password is incorrect!';
                 header('Location: ' . URL . '/login.php?msg=' . rawurlencode(htmlspecialchars($msg, ENT_QUOTES)));
                 exit;
             }
         } else {
             $msg = 'Password is incorrect!';
             header('Location: ' . URL . '/login.php?msg=' . rawurlencode(htmlspecialchars($msg, ENT_QUOTES)));
             exit;
         }
     }
 }
Ejemplo n.º 3
0
function changeNPCLogin()
{
    global $NPC_LOGIN, $actions, $NPC_LOGINS_USED, $underAttack, $previousContainer;
    if ($actions > 0) {
        debug('We have taken actions and now want to change NPC, let\'s exit and let next script choose a new NPC to reset execution time', getrusage());
        exitNPC();
    }
    $actions = -1;
    $GLOBALS['TRADE_ROUTE'] = null;
    $db = new SmrMySqlDatabase();
    $db->query('UPDATE npc_logins SET working=' . $db->escapeBoolean(false) . ' WHERE login='******'Login']));
    if ($db->getChangedRows() > 0) {
        debug('Unlocked NPC: ' . $NPC_LOGIN['Login']);
    } else {
        debug('Failed to unlock NPC: ' . $NPC_LOGIN['Login']);
    }
    $NPC_LOGIN = null;
    // We chose a new NPC, we don't care what we were doing beforehand.
    $previousContainer = null;
    debug('Choosing new NPC');
    $db2 = new SmrMySqlDatabase();
    $db->query('SELECT login, npc.player_name, alliance_name
				FROM npc_logins npc
				LEFT JOIN account a USING(login)
				LEFT JOIN player p ON a.account_id = p.account_id AND p.game_id = ' . $db->escapeNumber(NPC_GAME_ID) . '
				WHERE active=' . $db->escapeBoolean(true) . ' AND working=' . $db->escapeBoolean(false) . ' AND login NOT IN (' . $db->escapeArray($NPC_LOGINS_USED) . ')
				ORDER BY (turns IS NOT NULL), turns DESC');
    while ($db->nextRecord()) {
        $db2->query('UPDATE npc_logins SET working=' . $db2->escapeBoolean(true) . ' WHERE login='******'login')) . ' AND working=' . $db2->escapeBoolean(false));
        if ($db2->getChangedRows() > 0) {
            $NPC_LOGIN = array('Login' => $db->getField('login'), 'PlayerName' => $db->getField('player_name'), 'AllianceName' => $db->getField('alliance_name'));
            break;
        }
    }
    $NPC_LOGINS_USED[] = $NPC_LOGIN['Login'];
    if ($NPC_LOGIN === null) {
        debug('No free NPCs');
        exitNPC();
    }
    debug('Chosen NPC: ' . $NPC_LOGIN['Login']);
    if (SmrAccount::getAccountByName($NPC_LOGIN['Login']) == null) {
        debug('Creating account for: ' . $NPC_LOGIN['Login']);
        $account =& SmrAccount::createAccount($NPC_LOGIN['Login'], '', '*****@*****.**', 'NPC', 'NPC', 'NPC', 'NPC', 'NPC', 'NPC', 'NPC', 0, 0);
        $account->setValidated(true);
    } else {
        $account =& SmrAccount::getAccountByName($NPC_LOGIN['Login']);
    }
    $GLOBALS['account'] =& $account;
    SmrSession::$account_id = $account->getAccountID();
    $underAttack = false;
    //Auto-create player if need be.
    $db->query('SELECT 1 FROM player WHERE account_id = ' . $account->getAccountID() . ' AND game_id = ' . NPC_GAME_ID . ' LIMIT 1');
    if (!$db->nextRecord()) {
        SmrSession::$game_id = 0;
        //Have to be out of game to join game.
        debug('Auto-creating player: ' . $account->getLogin());
        processContainer(joinGame(SmrSession::$game_id, $NPC_LOGIN['PlayerName']));
    }
    throw new Exception('Forward');
}