27.09.2018, 21:02
Problema ao fazer login.
Eu entro no servidor ele checa se o usuario existe, atй aн tudo bem, mas na hora de checar se a senha estб correta ele nгo checa, simplesmente ele entra, pode a senha ser "123", e o cara colocar no dialog "fsadsada", sempre vai entrar, alguem pode dar uma ajudinha aqui? kkk
Nгo faзo a menor ideia de como faзo pra comparar 2 textos.
A que estб em PlayerInfo[playerid][pSenha] e oque estб no inputtext.
Dб um help aqui pls :c
Aн estб todo o cуdigo da GM.
Fonte do Cуdigo: Cleyson
Eu entro no servidor ele checa se o usuario existe, atй aн tudo bem, mas na hora de checar se a senha estб correta ele nгo checa, simplesmente ele entra, pode a senha ser "123", e o cara colocar no dialog "fsadsada", sempre vai entrar, alguem pode dar uma ajudinha aqui? kkk
Nгo faзo a menor ideia de como faзo pra comparar 2 textos.
A que estб em PlayerInfo[playerid][pSenha] e oque estб no inputtext.
Dб um help aqui pls :c
Code:
#include <a_samp> #include <a_mysql> #define MySQL_HOST "localhost" #define MySQL_USER "root" #define MySQL_PASS "" #define MySQL_DATA "banco" #define mysql_fetch_row(%1) mysql_fetch_row_format(%1,"|") #define DIALOG_REGISTRO 1 #define DIALOG_LOGIN 2 new MySQL:con; enum pInfo { pID, pNick[24], pSenha[20], pScore, pDinheiro, pBanco, pAdmin, bool:pLogado }; new PlayerInfo[MAX_PLAYERS][pInfo]; main(){ } public OnGameModeInit(){ con = mysql_connect(MySQL_HOST,MySQL_USER,MySQL_PASS,MySQL_DATA); mysql_query(con,"CREATE TABLE IF NOT EXISTS contas(id INT(11) NOT NULL AUTO_INCREMENT, nick VARCHAR(24) NOT NULL, senha VARCHAR(40) NOT NULL, score INT(11) DEFAULT '15', banco BIGINT(20) NOT NULL,dinheiro BIGINT(20) NOT NULL)"); if(mysql_errno(con) != 0){ printf("Falha na conexгo com o banco de dados."); }else{ printf("Conexгo com o banco de dados bem sucedida."); } return 1; } public OnGameModeExit() { for(new i = 0; i < MAX_PLAYERS; i++) SalvarDados(i); mysql_close(con); return 1; } public OnPlayerConnect(playerid) { GetPlayerName(playerid, PlayerInfo[playerid][pNick], 24); new Query[90]; mysql_format(con, Query, sizeof(Query), "SELECT * FROM `contas` WHERE nick='%s'", PlayerInfo[playerid][pNick]); mysql_tquery(con, Query, "PegarSenha", "i", playerid); mysql_format(con, Query, sizeof(Query), "SELECT * FROM `contas` WHERE nick='%s'", PlayerInfo[playerid][pNick]); mysql_tquery(con, Query, "VerificarContas", "i", playerid); return 1; } forward VerificarContas(playerid); public VerificarContas(playerid) { new Dialog[240]; if(cache_num_rows() > 0) { cache_get_value(0, "Senha", PlayerInfo[playerid][pSenha], 20); format(Dialog, sizeof(Dialog),"{F8F8FF}Bem Vindo(a) Ao Servidor {058AFF}%s{F8F8FF}\n\nVocк ja tem uma Conta registrada\n\nDigite sua senha para Logar\n\nStatus: {1E90FF}Registrado", PlayerInfo[playerid][pNick]); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", Dialog, "Logar", "Cancelar"); } else { format(Dialog, sizeof(Dialog),"{F8F8FF}Bem Vindo(a) Ao Servidor {058AFF}%s{F8F8FF}\n\nVocк nгo tem uma Conta registrada\n\nDigite uma senha para Registrar\n\nStatus: {058AFF}N/A Registrado", PlayerInfo[playerid][pNick]); ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro", Dialog, "Registrar", "Cancelar"); } return 1; } public OnPlayerDisconnect(playerid, reason) { SalvarDados(playerid); return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case DIALOG_REGISTRO: { if(!response) return Kick(playerid); if(strlen(inputtext) < 4 || strlen(inputtext) > 20) { SendClientMessage(playerid, -1, "ERRO:{FFFFFF} A senha deve conter de 4 a 20 caracteres!"); new Dialog[240]; format(Dialog, sizeof(Dialog),"{F8F8FF}Bem Vindo(a) Ao Servidor {058AFF}%s{F8F8FF}\n\nVocк nгo tem uma Conta registrada\n\nDigite uma senha para Registrar\n\nStatus: {058AFF}N/A Registrado", PlayerInfo[playerid][pNick]); ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro", Dialog, "Registrar", "Cancelar"); } else { new Query[100]; mysql_format(con, Query, sizeof(Query), "INSERT INTO `contas`(`nick`, `senha`) VALUES ('%s', '%s')", PlayerInfo[playerid][pNick], inputtext); mysql_tquery(con, Query, "DadosRegistrados", "i", playerid); RegistrarDados(playerid); } } case DIALOG_LOGIN: { if(!response) return Kick(playerid); if(!strlen(inputtext)) { SendClientMessage(playerid, -1, "ERRO:{FFFFFF} Vocк nгo digitou a senha !"); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Digite sua senha:", "Digite sua senha abaixo para logar-se", "Logar", "Voltar"); return 1; } if(!strcmp(PlayerInfo[playerid][pSenha], inputtext, true, 20)) { new Query[70]; mysql_format(con, Query, sizeof(Query), "SELECT * FROM `contas` WHERE nick='%s'", PlayerInfo[playerid][pNick]); mysql_tquery(con, Query, "CarregarContas", "d", playerid); PlayerInfo[playerid][pLogado] = true; } else { SendClientMessage(playerid, -1, "ERRO:{FFFFFF} Senha incorreta !"); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Digite sua senha:", "Digite sua senha abaixo para logar-se", "Logar", "Voltar"); } } } return 1; } public OnPlayerUpdate(playerid) { new Query[70]; mysql_format(con, Query, sizeof(Query), "SELECT * FROM `contas` WHERE nick='%s'", PlayerInfo[playerid][pNick]); mysql_tquery(con, Query, "AtualizarConta", "i", playerid); if(GetPlayerMoney(playerid) != PlayerInfo[playerid][pDinheiro]){ GivePlayerMoney(playerid,- GetPlayerMoney(playerid)); GivePlayerMoney(playerid, PlayerInfo[playerid][pDinheiro]); } if(GetPlayerScore(playerid) != PlayerInfo[playerid][pScore]){ SetPlayerScore(playerid,PlayerInfo[playerid][pScore]); } return 1; } forward AtualizarConta(playerid); public AtualizarConta(playerid) { cache_get_value_int(0, "score", PlayerInfo[playerid][pScore]); cache_get_value_int(0, "dinheiro", PlayerInfo[playerid][pDinheiro]); cache_get_value_int(0, "banco", PlayerInfo[playerid][pBanco]); return 1; } forward DadosRegistrados(playerid); public DadosRegistrados(playerid) { printf("-> Nova conta registrada ID: %d", PlayerInfo[playerid][pID]); return 1; } forward CarregarContas(playerid); public CarregarContas(playerid) { cache_get_value_int(0, "id", PlayerInfo[playerid][pID]); cache_get_value_int(0, "admin", PlayerInfo[playerid][pAdmin]); cache_get_value_int(0, "score", PlayerInfo[playerid][pScore]); cache_get_value_int(0, "dinheiro", PlayerInfo[playerid][pDinheiro]); cache_get_value_int(0, "banco", PlayerInfo[playerid][pBanco]); CarregarDados(playerid); return 1; } forward PegarSenha(playerid); public PegarSenha(playerid) { cache_get_value(0, "senha", PlayerInfo[playerid][pSenha]); CarregarDados(playerid); return 1; } stock RegistrarDados(playerid) { PlayerInfo[playerid][pDinheiro] = 500; PlayerInfo[playerid][pBanco] = 1000; PlayerInfo[playerid][pAdmin] = 0; PlayerInfo[playerid][pScore] = 15; CarregarDados(playerid); return 1; } stock CarregarDados(playerid) { PlayerInfo[playerid][pLogado] = true; SetPlayerScore(playerid, PlayerInfo[playerid][pScore]); GivePlayerMoney(playerid,- GetPlayerMoney(playerid)); GivePlayerMoney(playerid, PlayerInfo[playerid][pDinheiro]); return 1; } stock SalvarDados(playerid) { if(PlayerInfo[playerid][pLogado] == false) return 1; PlayerInfo[playerid][pDinheiro] = GetPlayerMoney(playerid); new Query[350]; mysql_format(con, Query, sizeof(Query), "UPDATE `contas` SET `score`=%d, `admin`=%d, `dinheiro`=%d, `banco`=%d WHERE `nick`=%d", PlayerInfo[playerid][pScore], PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][pDinheiro], PlayerInfo[playerid][pBanco], PlayerInfo[playerid][pNick]); mysql_tquery(con, Query, "DadosSalvos","d", playerid); PlayerInfo[playerid][pScore] = 0; PlayerInfo[playerid][pAdmin] = 0; PlayerInfo[playerid][pDinheiro] = 0; PlayerInfo[playerid][pBanco] = 0; PlayerInfo[playerid][pLogado] = false; return 1; } forward DadosSalvos(playerid); public DadosSalvos(playerid) return printf("-> Conta salva ID: %d", PlayerInfo[playerid][pID]);
Fonte do Cуdigo: Cleyson