Ayuda!
#1

Pongo bien mi contraseсa y me tira server closed the conecction.

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new string[256];
    new pName[24], Query[256]; GetPlayerName(playerid, pName, 24);
    switch(dialogid)
    {
        case LOGIN:
        {
            if(!response)
            {
                Kick(playerid);
            }
            if(strcmp(PlayerInfo[playerid][pPassword], inputtext, true, 128) == 0)
            {
                format(Query, sizeof(Query), "SELECT * FROM `usuarios` WHERE `Nombre` = '%s'", pName);
                mysql_function_query(Conecction, Query, true, "OnQueryFinish", "ii", 1, playerid);
                SetSpawnInfo(playerid,0,0,PlayerInfo[playerid][pPosx], PlayerInfo[playerid][pPosy], PlayerInfo[playerid][pPosz],0,0,0,0,0,0,0);
                SetPlayerHealth(playerid, PlayerInfo[playerid][pVida]);
                SetPlayerArmour(playerid, PlayerInfo[playerid][pChaleco]);
                SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
                SpawnPlayer(playerid);
            }
            else
            {
                SendClientMessage(playerid, -1, "CONTRASEСA INCORRECTA");
                Kick(playerid);
            }
        }
Reply
#2

porque tienes el!!

pawn Код:
Kick(playerid);
seria por eso?? ya que al poner la contra te estaria kickeando?? XD
Reply
#3

Coloca '!" Antes de strcmp aver...

pawn Код:
if(!strcmp(PlayerInfo[playerid][pPassword], inputtext, true, 128) == 0)
Reply
#4

! & == 0 son lo mismo.

Quizбs tenes las contraseсas en la base de datos crifada. Por lo que para que se valide el "inputtext" lo deberнas crifar tambiйn.

PD: Creo que te pueden hacer inyecciуn SQL con ese cуdigo que has puesto.
Reply
#5

No es nada de lo anterior.

No te da el tiempo de mostrar el mensaje. Usa lo siguiente:

pawn Код:
// Cuando quieras llamarla
SetTimerEx("TimeKick",1000,false,"i",playerid); // 1000 = 1 segundo. Ajustalo como quieras

// Debajo del codigo
forward TimeKick(playerid);
public TimeKick(playerid)
{
    Kick(playerid);
    return 1;
}
EDIT: Usa la funcion despues de mostrarle el mensaje de contrasena incorrecta.

Presiento que estas usando el tutorial de JustBored, que cuando yo probe a ver como quedaba me ocurrio el mismo problema.
Reply
#6

Quote:
Originally Posted by theLegion
Посмотреть сообщение
No es nada de lo anterior.

No te da el tiempo de mostrar el mensaje. Usa lo siguiente:

pawn Код:
// Cuando quieras llamarla
SetTimerEx("TimeKick",1000,false,"i",playerid); // 1000 = 1 segundo. Ajustalo como quieras

// Debajo del codigo
forward TimeKick(playerid);
public TimeKick(playerid)
{
    Kick(playerid);
    return 1;
}
EDIT: Usa la funcion despues de mostrarle el mensaje de contrasena incorrecta.

Presiento que estas usando el tutorial de JustBored, que cuando yo probe a ver como quedaba me ocurrio el mismo problema.
EL DICE QUE PONE BIEN LA CONTRASEСA Y LO KICKEA, NADA QUE VER LO QUEE DICES...?
Reply
#7

Asegъrate de que se guarda y se carga antes de mostrar el diбlogo, usa un print a ver que sale, tambiйn puede ser lo que te dijo Julian.
Reply
#8

pawn Код:
PlayerInfo[playerid][pPassword]
Esa variable no guarda la contraseсa correctamente.
Reply
#9

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
! & == 0 son lo mismo.

Quizбs tenes las contraseсas en la base de datos cifrada. Por lo que para que se valide el "inputtext" lo deberнas cifrar tambiйn.

PD: Creo que te pueden hacer inyecciуn SQL con ese cуdigo que has puesto.
No entiendo bien, їcуmo que cifrada?

їY quй es una inyecciуn SQL? no tengo idea de mysql, reciйn estoy aprendiendo.
Reply
#10

Ayudenme plz.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)