/** 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ächtig.<br>" . "Wenn Du Dich nicht innerhalb der naechsten 24 " . "Stunden bei uns meldest wird dein Account gelöscht.<br>" . "Melde dich per email an multi@uga-agga.de."; case '2': return "Dieser Account ist Cheat - Verdächtig.<br>" . "Wenn Du Dich nicht innerhalb der naechsten 24 " . "Stunden bei uns meldest wird dein Account gelö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 .= "<=" . $last_login_time; // ----------------------------------------------------------------- // use server's gfxs? if ($params->nogfx == 1) { $url .= "&nogfx=1"; } header("Location: " . $url); exit; }
// --------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------- 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,