Postado Setembro 4, 2020 4 anos .Qual servidor ou website você utiliza como base? TFS 1.3 Qual o motivo deste tópico? Olá, você poderia me ajudar? Estou usando um Tibia Client v12.40.9997 para fazer o login. Mas eu não respeito o AccountName. Se eu quiser entrar com ADM use @ e a senha: Citar Com @: Citar Como posso consertar isso? .... Aproveitando, é possível retirar este: Citar Saudações
Postado Setembro 4, 2020 4 anos 9 horas atrás, dybbuk2 disse: .Qual servidor ou website você utiliza como base? TFS 1.3 Qual o motivo deste tópico? Olá, você poderia me ajudar? Estou usando um Tibia Client v12.40.9997 para fazer o login. Mas eu não respeito o AccountName. Se eu quiser entrar com ADM use @ e a senha: Com @: Como posso consertar isso? .... Aproveitando, é possível retirar este: Saudações Vamos la, Qual site vc ta usando!? Provavelmente o site está redirecionando o login game, para acessar com o e-mail cadastrado na criação da conta. Geralmente OT com versões 12+ o acesso no site é pelo account name e pra logar no jogo é pelo e-mail.Retirar mensagem battle eye Substitua essa sequencia hexadecimal: C6 45 D7 00 C6 45 CF 00 Por esta: C6 45 D7 00 C6 45 CF 01
Postado Setembro 4, 2020 4 anos Autor 8 minutos atrás, EdsonJunior disse: Vamos la, Qual site vc ta usando!? Provavelmente o site está redirecionando o login game, para acessar com o e-mail cadastrado na criação da conta. Geralmente OT com versões 12+ o acesso no site é pelo account name e pra logar no jogo é pelo e-mail.Retirar mensagem battle eye Substitua essa sequencia hexadecimal: C6 45 D7 00 C6 45 CF 00 Por esta: C6 45 D7 00 C6 45 CF 01 Estou usando Gesior: Citar https://github.com/Johncorex/OTG-Gesior já remove o Battle Eye, obrigado por isso.
Postado Setembro 4, 2020 4 anos Solução 26 minutos atrás, dybbuk2 disse: Estou usando Gesior: já remove o Battle Eye, obrigado por isso. Tenta isso, porque geralmente o pessoal faz ao contrario, quer tirar o accountname pra por o e-mail. no login.php Procura por account->loadByName($result->email); e troque por account->loadByName($result->accountname); Provavelmente o cliente 12.40+ vai crashar, sugiro que crie um anuncio no site/divulgação as formas de logar no client. Editado Setembro 4, 2020 4 anos por EdsonJunior (veja o histórico de edições)
Postado Setembro 4, 2020 4 anos Autor Hace 56 minutos, EdsonJunior dijo: Pruebe esto, porque por lo general el personal hace al revés, quiere tomar el nombre de cuenta para poner el correo electrónico. en login.php Buscar cuenta->loadByName($result->email); e intercambiar por account->loadByName ($result->accountname); Probablemente el cliente 12.40+ se bloqueará, le sugiero que cree un anuncio en el sitio / difusión de las formas de iniciar sesión en el cliente. Eu não consigo encontrar. Login.php Citar <?php $_GET['subtopic'] á 'login'; $_REQUEST['subtopic'] á 'login'; incluir ('index.php'); Index.php Citar <?php // anti sql inyectar por Johncore incluyen "antisql.php"; // comentario para mostrar E_NOTICE [variable no indefinida, etc.], comentar si desea crear script y ver todos los errores error_reporting(E_ALL - E_STRICT E_NOTICE); true: muestra las consultas enviadas y las consultas SQL status/status code/error message define('DEBUG_DATABASE', false); define ('INITIALIZED', true); si no se definió antes, establezca 'ONLY_PAGE false' para cargar todos los ONLY_PAGE define ('AJAXREQUEST', false); //header("X-Content-Type-Options: nosniff"); //header("X-FRAME-OPTIONS: DENY"); //header("X-XSS-Protection: 1"); comprobar si el sitio está deshabilitado/requiere instalación include_once('./system/load.loadCheck.php'); corregir datos de usuario, cargar configuraciones, habilitar el cargador automático de clases include_once('./system/load.init.php'); DATABASE include_once('./system/load.database.php'); if(DEBUG_DATABASE) Website::getDBHandle()->setPrintQueries(true); // FINAL DE BASE DE DATOS INICIO if(! ONLY_PAGE) include_once('./system/load.login.php'); // INICIO FINAL COMPAT // algunas partes de ese archivo se pueden bloquear debido a ONLY_PAGE constante include_once('./system/load.compat.php'); // END COMPAT LOAD PAGE include_once('./system/load.page.php'); // LOAD PAGE END // LAYOUT // con ONLY_PAGE solo devolvemos el texto de la página, no el diseño if(in_array($_REQUEST['subtopic'], array("play", "refresh", "client_options_serverscript"))) - echo $main_content; ONLY_PAGE) include_once('./system/load.layout.php'); otro eco $main_content; // END LAYOUT load.login.php Citar <?php if(!defined('INITIALIZED')) exit; if(isset($_REQUEST['action']) && $_REQUEST['action'] == 'logout') Visitor::logout(); if(isset($_REQUEST['account_login']) && isset($_REQUEST['password_login'])) { Visitor::setAccount($_REQUEST['account_login']); Visitor::setPassword($_REQUEST['password_login']); //Visitor::login(); // this set account and password from code above as login and password to next login attempt //Visitor::loadAccount(); // this is required to force reload account and get status of user $isTryingToLogin = true; } Visitor::login(); Visitor.class Citar <?php if(!defined('INITIALIZED')) exit; Visitante de la clase - const LOGINSTATE_NOT_TRIED - 1; const LOGINSTATE_NO_ACCOUNT 2; const LOGINSTATE_WRONG_PASSWORD 3; const LOGINSTATE_LOGGED a 4; $loginAccount estática privada; $loginPassword estática privada; $account estático privado; $loginState estático privado : self::LOGINSTATE_NOT_TRIED; función estática pública setAccount($value) á $_SESSION['account'] - $value; } función estática pública setPassword($value) á $_SESSION['password'] - $value; } public static function getAccount() á if(!isset(self::$account)) self::loadAccount(); return self::$account; } función estática pública loadAccount() á self::$account á new Account(); if(!empty(self::$loginAccount)) á self::$account->loadByName(self::$loginAccount); if(self::$account->isLoaded()) if(self::$account->isValidValid(self::$loginPassword)) self::$loginState - self::LOGINSTATE_LOGGED; else self::$loginState - self::LOGINSTATE_WRONG_PASSWORD; otro yo::$loginState - yo::LOGINSTATE_NO_ACCOUNT; otro yo::$loginState - yo::LOGINSTATE_NOT_TRIED; if(self::$loginState !- self::LOGINSTATE_LOGGED) self::$account á new Account(); } public static function isTryingToLogin() á return !empty(self::$loginAccount); } public static function getLoginState() á return self::$loginState; } public static function isLogged() á return self::isTryingToLogin() && self::getAccount()->isLoaded(); } función estática pública login() á if(isset($_SESSION['account'])) self::$loginAccount á $_SESSION['account']; if(isset($_SESSION['password'])) self::$loginPassword á $_SESSION['password']; } función estática pública logout() á unset($_SESSION['account']); unset($_SESSION['password']); self::$loginAccount - null; self::$loginPassword ? null; self::$account ? new Account(); self::$loginState -self::LOGINSTATE_NOT_TRIED; } función estática pública getIP() á return ip2long($_SERVER['REMOTE_ADDR']); } } Nesta linha, envie para trazer para Account.php Citar self::$account->loadByName(self::$loginAccount); l Citar <?php if(!defined('INITIALIZED')) exit; class Account extends ObjectData { const LOADTYPE_ID = 'id'; const LOADTYPE_NAME = 'name'; const LOADTYPE_MAIL = 'email'; public static $table = 'accounts'; public $data = array('name' => null, 'password' => null, 'secret'=>null, 'premdays' => 0, 'coins' => 0, 'lastday' => 0, 'email' => null, 'key' => null, 'create_ip' => null, 'creation' => null, 'page_access' => 1, 'location' => null, 'rlname' => null, 'birth_date' => null, 'gender' => null, 'email_new' => null, 'email_new_time' => 0, 'email_code' => null, 'next_email' => 0, 'last_post' => 0, 'flag' => null, 'vote' => 0, 'loyalty_points' => 0, 'guild_points' => 0, 'authToken' => '0'); public static $fields = array('id', 'name', 'password', 'premdays', 'coins', 'lastday', 'email', 'key', 'create_ip', 'creation', 'page_access', 'location', 'rlname','birth_date', 'gender', 'email_new', 'email_new_time', 'email_code', 'next_email', 'last_post', 'flag', 'vote', 'loyalty_points', 'guild_points'); public $players; public $playerRanks; public $guildAccess; public $bans; public function __construct($search_text = null, $search_by = self::LOADTYPE_ID) { if($search_text != null) $this->load($search_text, $search_by); } public function load($search_text, $search_by = self::LOADTYPE_ID) { if(in_array($search_by, self::$fields)) $search_string = $this->getDatabaseHandler()->fieldName($search_by) . ' = ' . $this->getDatabaseHandler()->quote($search_text); else new Error_Critic('', 'Wrong Account search_by type.'); $fieldsArray = array(); foreach(self::$fields as $fieldName) $fieldsArray[$fieldName] = $this->getDatabaseHandler()->fieldName($fieldName); $this->data = $this->getDatabaseHandler()->query('SELECT ' . implode(', ', $fieldsArray) . ' FROM ' . $this->getDatabaseHandler()->tableName(self::$table) . ' WHERE ' . $search_string)->fetch(); } public function loadById($id) { $this->load($id, 'id'); } public function loadByName($name) { $this->load($name, 'name'); } public function loadByEmail($mail) { $this->load($mail, 'email'); } public function save($forceInsert = false) { if(!isset($this->data['id']) || $forceInsert) { $keys = array(); $values = array(); foreach(self::$fields as $key) if($key != 'id') { $keys[] = $this->getDatabaseHandler()->fieldName($key); $values[] = $this->getDatabaseHandler()->quote($this->data[$key]); } $this->getDatabaseHandler()->query('INSERT INTO ' . $this->getDatabaseHandler()->tableName(self::$table) . ' (' . implode(', ', $keys) . ') VALUES (' . implode(', ', $values) . ')'); $this->setID($this->getDatabaseHandler()->lastInsertId()); } else { $updates = array(); foreach(self::$fields as $key) if($key != 'id') $updates[] = $this->getDatabaseHandler()->fieldName($key) . ' = ' . $this->getDatabaseHandler()->quote($this->data[$key]); $this->getDatabaseHandler()->query('UPDATE ' . $this->getDatabaseHandler()->tableName(self::$table) . ' SET ' . implode(', ', $updates) . ' WHERE ' . $this->getDatabaseHandler()->fieldName('id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id'])); } } public function getPlayers($forceReload = false) { if(!isset($this->players) || $forceReload) { $this->players = new DatabaseList('Player'); $this->players->setFilter(new SQL_Filter(new SQL_Field('account_id'), SQL_Filter::EQUAL, $this->getID())); $this->players->addOrder(new SQL_Order(new SQL_Field('name'))); } return $this->players; } public function unban() { $this->getDatabaseHandler()->query('DELETE FROM ' . $this->getDatabaseHandler()->tableName('account_bans') . ' WHERE ' . $this->getDatabaseHandler()->fieldName('account_id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id'])); unset($this->bans); } public function loadBans($forceReload = false) { if(!isset($this->bans) || $forceReload) { $this->bans = new DatabaseList('AccountBan'); $filter = new SQL_Filter(new SQL_Field('account_id'), SQL_Filter::EQUAL, $this->data['id']); $this->bans->setFilter($filter); } } public function isBanned($forceReload = false) { $this->loadBans($forceReload); return count($this->bans) > 0; } public function getBanTime($forceReload = false) { $this->loadBans($forceReload); $lastExpires = 0; $now = date('Y-m-d h:i:s'); foreach($this->bans->data as $ban) { if($ban['expires_at'] <= $now) { $lastExpires = 0; break; } if($ban['expires_at'] > $now && $ban['expires_at'] > $lastExpires) $lastExpires = $ban['expires_at']; } return $lastExpires; } public function delete() { $this->getDatabaseHandler()->query('DELETE FROM ' . $this->getDatabaseHandler()->tableName(self::$table) . ' WHERE ' . $this->getDatabaseHandler()->fieldName('id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id'])); unset($this->data['id']); } public function setID($value){$this->data['id'] = $value;} public function getID(){return $this->data['id'];} public function setName($value){$this->data['name'] = $value;} public function getName(){return $this->data['name'];} public function setPassword($value) { $this->data['password'] = Website::encryptPassword($value, $this); } public function getPassword(){return $this->data['password'];} public function setPremDays($value){$this->data['premdays'] = $value;} public function getPremDays(){return $this->data['premdays'] - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->data['lastday']))) - date("z", $this->data['lastday']));} public function setLastDay($value){$this->data['lastday'] = $value;} public function getLastDay(){return $this->data['lastday'];} public function setMail($value){$this->data['email'] = $value;} public function getMail(){return $this->data['email'];} public function setKey($value){$this->data['key'] = $value;} public function getKey(){return $this->data['key'];} public function setCreateIP($value){$this->data['create_ip'] = $value;} public function getCreateIP(){return $this->data['create_ip'];} public function setCreateDate($value){$this->data['creation'] = $value;} public function getCreateDate(){return $this->data['creation'];} public function setPremiumPoints($value){$this->data['coins'] = $value;} public function getPremiumPoints(){return $this->data['coins'];} public function setPageAccess($value){$this->data['page_access'] = $value;} public function getPageAccess(){return $this->data['page_access'];} public function setLocation($value){$this->data['location'] = $value;} public function getLocation(){return $this->data['location'];} public function setLoyalty($value){$this->data['loyalty_points'] = $value;} public function getLoyalty(){return $this->data['loyalty_points'];} public function setRLName($value){$this->data['rlname'] = $value;} public function getRLName(){return $this->data['rlname'];} public function setBirthDate($value){$this->data['birth_date'] = $value;} public function getBirthDate(){return $this->data['birth_date'];} public function setGender($value){$this->data['gender'] = $value;} public function getGender(){return $this->data['gender'];} public function setFlag($value){$this->data['flag'] = $value;} public function getFlag(){return $this->data['flag'];} public function getEMail(){return $this->getMail();} public function setEMail($value){$this->setMail($value);} public function getPlayersList(){return $this->getPlayers();} public function getGuildAccess($guildID){return $this->getGuildLevel($guildID);} public function isValidPassword($password) { return ($this->data['password'] == Website::encryptPassword($password, $this)); } public function find($name){$this->loadByName($name);} public function findByEmail($email){$this->loadByEmail($email);} public function isPremium(){return ($this->getPremDays() > 0);} public function getLastLogin(){return $this->getLastDay();} public function getSecret(){return $this->data['secret'];} public function setSecret($value){$this->data['secret'] = $value;} } está usando o nome da conta, se não me engano Citar public function loadByName($name) { $this->load($name, 'name'); } 2 horas atrás, EdsonJunior disse: Tenta isso, porque geralmente o pessoal faz ao contrario, quer tirar o accountname pra por o e-mail. no login.php Procura por account->loadByName($result->email); e troque por account->loadByName($result->accountname); Provavelmente o cliente 12.40+ vai crashar, sugiro que crie um anuncio no site/divulgação as formas de logar no client. Resolvi o problema mudando o método no Account.php: Citar public function loadByEmail($mail) { $this->load($mail, 'name'); } 'mail' por 'name'. Você pensa em problemas futuros? miuto abrigado!
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.