[Ajuda] Ajuda Login entrando com qualquer senha MYSQL
#1

PHP код:
case DIALOG_REGISTRO:
        {
            if(!
response) return SendClientMessage(playerid, -1"Vocк nгo quis digitar uma senha"); 
            if(
strlen(inputtext) < || strlen(inputtext) > 16) /
            {
                new 
Dialog[240]; 
                
SendClientMessage(playerid, -1"ERRO:{FFFFFF} A senha deve conter de 4 a 16 caracteres!");
                
                
format(Dialogsizeof(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{F8F8FF}\n\nIP: {058AFF}%s"Nome(playerid), IP(playerid));
                
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_PASSWORD"Registro"Dialog"Registrar""Cancelar");
               return 
1;
               }
             if(
response)
            {
                new 
Query[100];
                
mysql_format(IDConexaoQuerysizeof(Query), "INSERT INTO `contas`(`Nome`, `Senha`) VALUES ('%s', '%e')"Nome(playerid), inputtext); 
                
mysql_tquery(IDConexaoQuery"Mysql_DadosRegistrados""i"playerid); 
               
                
Mysql_RegistrarDados(playerid); 
               return 
1;
            }
        } 


PHP код:
case DIALOG_LOGIN:
        {
            if(!
response) return Kick(playerid); 
            if(
strcmp(PlayerInfo[playerid][pSenha], inputtexttrue20)) 
            {
                new 
Query[70];
                 
mysql_format(IDConexaoQuerysizeof(Query), "SELECT * FROM `Contas` WHERE Nome='%s'"Nome(playerid));
                
mysql_tquery(IDConexaoQuery"Mysql_CarregarDados""d"playerid);
                
                } else {
                
SendClientMessage(playerid, -1"ERRO:{FFFFFF} Senha incorreta !");
                
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Digite sua senha:""Digite sua senha abaixo para logar-se""Logar""Voltar");
            }
        }
    } 
Reply
#2

PHP код:

pinfo
{
pSenha[128]
}
new 
PlayerInfo[MAX_PLAYERS][pinfo];
OnPlayerConnect(playerid)
{
        new 
senha[128];
        
//aqui coloca a verificaзгo se a conta existe ou nгo para nгo ocorrer erros
        
cache_get_field_content(0"Senha"senha); // se for diferente de cache_get_field_content altere para a sua versгo do plugin mysql
        
format(PlayerInfo[playerid][pSenha], 128"%s"senha);
        
//aqui vocк coloca a dialog do login e registro
        
return 1;
}; 
tente assim
Reply
#3

1. Seu registro/login й totalmente inseguro, pois vocк nгo da hash nas senhas.
2. A funзгo strcmp retorna 0 quando as strings comparadas sгo exatamente iguais, entгo vocк deveria colocar
PHP код:
if(!strcmp(...)) 
Provavelmente й isso que estб dando problema, pois vocк compara a string pSenha com inputtext para casos diferentes de zero, isso quer dizer que vocк ta verificando se elas sгo diferentes.
3. Vocк provavelmente nгo tem a pSenha setada como a senha do jogador, visto que vocк ainda nгo carregou os dados deles (suponho), entгo vocк estб comparando uma string nula com inputtext.
Reply
#4

Код:
mysql_format(Conexao, Query, sizeof(Query), "SELECT * FROM contas WHERE Nome='%e' AND Senha='%e'", Nome(playerid),inputtext);
new Cache:Temp = mysql_query(IDConexao, Query, true);
if(!cache_get_row_count(IDConexao))
{
    //se errar a senha
}
else if(cache_get_row_count(IDConexao) == 1)//se acertou a senha
{
    //ver a conta do jogador
    mysql_format(IDConexao, Query, sizeof(Query), "SELECT * FROM contas WHERE Nome='%e'", Nome(playerid));
    mysql_tquery(IDConexao, Query, "Mysql_CarregarDados", "d", playerid);
}
cache_delete(Temp, IDConexao);
Reply
#5

Quote:

mysql_format(Conexao, Query, sizeof(Query), "SELECT * FROM contas WHERE Nome='%e' AND Senha='%e'", Nome(playerid),inputtext);
new Cache:Temp = mysql_query(IDConexao, Query, true);
if(!cache_get_row_count(IDConexao))
{
//se errar a senha
}
else if(cache_get_row_count(IDConexao) == 1)//se acertou a senha
{
//ver a conta do jogador
mysql_format(IDConexao, Query, sizeof(Query), "SELECT * FROM contas WHERE Nome='%e'", Nome(playerid));
mysql_tquery(IDConexao, Query, "Mysql_CarregarDados", "d", playerid);
}
cache_delete(Temp, IDConexao);

Obrigado mano, funcionou perfeitamente.
Reply
#6

PHP код:
if(!strcmp(inputtextPlayerInfo[playerid][pSenha])) 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)