Пример #1
0
/** This function checks the username, password and security code.
 *  If successful, it refers directly to the game...
 */
function login_checkUserPassword($db_login, $user, $password, $security_code)
{
    global $cfg, $params;
    // hol die Benutzerdaten
    $query = "SELECT *,Now()+0 as jetzt, DATE_FORMAT(ban, '%e.%c.%Y %k:%i') as time FROM Login WHERE user='******' AND password='******'";
    $result = $db_login->query($query);
    if (!$result) {
        return "Datenbankfehler beim Login: "******"Falscher User oder falsches Passwort.";
    }
    $row = $result->nextRow();
    $result->free();
    // Security Code richtig eingegeben?
    if (!$row['noseccode'] && $cfg['USE_SEC_CODE'] && ($security_code != $_SESSION['seccode'] || $security_code == '')) {
        login_writeLog($db_login, $user, $password, $security_code, LOGIN_WRONG_SECURITY_CODE);
        return "Bitte gib den korrekten Security Code ein!";
    }
    if ($row['deleted'] == 1) {
        login_writeLog($db_login, $user, $password, $security_code, LOGIN_FAILURE);
        return "Dieser Account ist gelöscht worden.";
    }
    if ($row['ban'] != 0 & $row['jetzt'] < $row['ban']) {
        login_writeLog($db_login, $user, $password, $security_code, LOGIN_FAILURE);
        return "Dieser Account ist noch bis zum " . $row['time'] . " Uhr gesperrt.";
    }
    if ($row['multi'] != 0) {
        login_writeLog($db_login, $user, $password, $security_code, LOGIN_FAILURE);
        switch ($row['multi']) {
            default:
                $sql = "SELECT * FROM Block WHERE blockid = '{$row['multi']}'";
                $block = $db_login->query($sql);
                if (!$block->isEmpty()) {
                    $block_row = $block->nextRow();
                    $block->free();
                    return $block_row['reason'];
                }
                break;
                // slange: break hinzugefügt. steht nun für eine multi id kein eintrag in block,
                //         wird der spieler in fällen != 1, 2 auch nicht gesperrt. das wird
                //         konkret bei multi=8 für die scripter verwendet, die nicht gesperrt werden!
                //         bitte nicht ändern, da die NPC Leute öfter mal Fehler in den scripten haben.
            // slange: break hinzugefügt. steht nun für eine multi id kein eintrag in block,
            //         wird der spieler in fällen != 1, 2 auch nicht gesperrt. das wird
            //         konkret bei multi=8 für die scripter verwendet, die nicht gesperrt werden!
            //         bitte nicht ändern, da die NPC Leute öfter mal Fehler in den scripten haben.
            case '1':
                return "Dieser Account ist Multi - Verd&auml;chtig.<br>" . "Wenn Du Dich nicht innerhalb der naechsten 24 " . "Stunden bei uns meldest wird dein Account gel&ouml;scht.<br>" . "Melde dich per email an multi@uga-agga.de.";
            case '2':
                return "Dieser Account ist Cheat - Verd&auml;chtig.<br>" . "Wenn Du Dich nicht innerhalb der naechsten 24 " . "Stunden bei uns meldest wird dein Account gel&ouml;scht.<br>" . "Melde dich per email an cheat@uga-agga.de.";
        }
    }
    // Noch nicht aktiviert
    if ($row['activated'] != 1) {
        login_writeLog($db_login, $user, $password, $security_code, LOGIN_ACTIVATE_FIRST);
        return login_activateAccount($db_login, $user, $password);
    }
    // ADDED by chris--- for urlaubsmod -----------------------------------------------------
    // Im Urlaub
    if ($row['urlaub'] != 0) {
        login_writeLog($db_login, $user, $password, $security_code, LOGIN_VACATION);
        return login_vacation($db_login, "", "");
    }
    // --------------------------------------------------------------------------------------
    // ADDED by chris--- for last login time ------------------------------------------------
    $query = "SELECT stamp FROM `loginlog` WHERE user='******' AND success = " . LOGIN_SUCCESS . " ORDER BY LoginLogID DESC LIMIT 0 , 1";
    $result = $db_login->query($query);
    if ($result && !$result->isEmpty()) {
        $loginrow = $result->nextRow(MYSQL_ASSOC);
        $last_login_time = $loginrow['stamp'];
    }
    // --------------------------------------------------------------------------------------
    login_writeLog($db_login, $user, $password, $security_code, LOGIN_SUCCESS);
    // get link to DB 'game'
    $db_game = new DB($cfg['DB_GAME']['HOST'], $cfg['DB_GAME']['USER'], $cfg['DB_GAME']['PWD'], $cfg['DB_GAME']['NAME']);
    if (!$db_game) {
        return "Game DB Fehler...";
    }
    // login
    $s_id = uniqid(rand(), 1);
    $checksum = md5($_SERVER['HTTP_USER_AGENT'] . $_SERVER['HTTP_ACCEPT_CHARSET'] . $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    $noscript = (int) $params->noscript;
    // session übernehmen
    $query = "REPLACE INTO `Session` " . "(s_id, playerID, loginip, loginchecksum, loginnoscript) " . "VALUES ('{$s_id}', '{$row['LoginID']}', " . "'{$_SERVER['REMOTE_ADDR']}', '{$checksum}', {$noscript})";
    $result = $db_game->query($query);
    if (!$result) {
        return "Fehler in der DB 3";
    }
    $serverID = getFreeServerID();
    session_destroy_session();
    // base url
    $url = $cfg['GAME_BASE'][$serverID] . $cfg['GAME_URL'][$serverID];
    // attach ids
    $url .= "?id=" . $s_id . "&userID=" . $row['LoginID'];
    // ADDED by chris--- for last loging time --------------------------
    $url .= "&lt=" . $last_login_time;
    // -----------------------------------------------------------------
    // use server's gfxs?
    if ($params->nogfx == 1) {
        $url .= "&nogfx=1";
    }
    header("Location: " . $url);
    exit;
}
Пример #2
0
     // ---------------------------------------------------------------------------------------
 // ---------------------------------------------------------------------------------------
 case PASSWORD_CHECK:
     array_push($main_content, module_getGeneric("Login Versuch", login_checkUserPassword($db_login, $params->username, $params->password, $params->security_code)));
     break;
 case REGISTER_EMAIL:
     array_push($main_content, module_getGeneric("Email registrieren", register_registerEmail($db_login, $params->email)));
     break;
 case PASSWORD_FORGOTTEN:
     array_push($main_content, module_getGeneric("Passwort vergessen", login_resendPassword($db_login, $params->username)));
     break;
 case CREATE_ACCOUNT:
     array_push($main_content, module_getGeneric("Account anlegen", login_createAccount($db_login)));
     break;
 case ACTIVATE_ACCOUNT:
     array_push($main_content, module_getGeneric("Account aktivieren", login_activateAccount($db_login, $params->username, $params->password)));
     break;
 case MANAGE_ACCOUNT:
     break;
 case DIE_TAL_ZEITUNG:
     array_push($main_content, module_getGeneric("Die Tal Zeitung", module_showTalZeitung()));
     break;
 case SHOW_AGB:
     array_push($main_content, module_getGeneric("Nutzungsbedingungen", module_showAGB()));
     break;
 case SHOW_IMPRESSUM:
     array_push($main_content, module_getGeneric("Impressum", module_showImpressum()));
     break;
     // ----- POLLS --------------------------------------------------------------
     /*
       case POLL_SHOW:      array_push($main_content,