Bug: Login without entering a password.
#1

Hello everyone,

Thank you for reading my threat.
I can't seem to get out of this bug in my script.
If i enter a random word as password, i can't login, but if i enter nothing and just click login.. The player logs in without password.

Can somebody help me please?

PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == LOGIN_DIALOG)
    {
        if(!
response) return Kick(playerid);
        if(
strcmp(inputtextPlayerInfo[playerid][pPass], true) == 0)
        {
            
SetSpawnInfo(playerid0PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ], PlayerInfo[playerid][pAngle], 000000);
            
GivePlayerMoney(playeridPlayerInfo[playerid][pMoney]);
            
SpawnPlayer(playerid);
            new 
string[64];
            
format(stringsizeof(string), "{8080FF}HAI!: {FFFFFF}Welcome %s!"GetName(playerid));
            
SendClientMessage(playerid, -1string);
        }
        else
        {
            
ShowPlayerDialog(playeridLOGIN_DIALOGDIALOG_STYLE_PASSWORD"Login""Wrong password! Try again!""Login""Disconnect");
        }
        return 
1;
    }
    if(
dialogid == REGISTER_DIALOG)
    {
        if(!
response) return Kick(playerid);
        if(
strlen(inputtext) > 24) return ShowPlayerDialog(playeridREGISTER_DIALOGDIALOG_STYLE_INPUT"Register""Password should be from 8 to 24 charachters long!""Register""Disconnect");
        
mysql_format(sqldbquerysizeof(query), "INSERT INTO accounts (accname, accpass) VALUES ('%e', '%e')"GetName(playerid), inputtext);
        
mysql_tquery(sqldbquery"InsertPlayer""i"playerid);
        
SetSpawnInfo(playerid0NEW_SKIN1481.1176, -1768.296818.7958357.9035000000);
        
SpawnPlayer(playerid);
        return 
1;
    }
    return 
0;

Reply
#2

Do you use any Auto Login system? If not, do you get any errors/warnings when compiling?
Reply
#3

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == LOGIN_DIALOG)
    {
        if(response)
        {
            if(strcmp(inputtext, PlayerInfo[playerid][pPass], true) == 0)
            {
                SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ], PlayerInfo[playerid][pAngle], 0, 0, 0, 0, 0, 0);
                GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
                SpawnPlayer(playerid);

                new string[64];
                format(string, sizeof(string), "{8080FF}HAI!: {FFFFFF}Welcome %s!", GetName(playerid));
                SendClientMessage(playerid, -1, string);
            }
            else
            {
                ShowPlayerDialog(playerid, LOGIN_DIALOG, DIALOG_STYLE_PASSWORD, "Login", "Wrong password! Try again!", "Login", "Disconnect");
            }
        }
        else if(!response) return Kick(playerid); }
    }
    if(dialogid == REGISTER_DIALOG)
    {
        if(response)
        {
            if(strlen(inputtext) > 24) return ShowPlayerDialog(playerid, REGISTER_DIALOG, DIALOG_STYLE_INPUT, "Register", "Password should be from 8 to 24 charachters long!", "Register", "Disconnect");

            mysql_format(sqldb, query, sizeof(query), "INSERT INTO accounts (accname, accpass) VALUES ('%e', '%e')", GetName(playerid), inputtext);
            mysql_tquery(sqldb, query, "InsertPlayer", "i", playerid);
            SetSpawnInfo(playerid, 0, NEW_SKIN, 1481.1176, -1768.2968, 18.7958, 357.9035, 0, 0, 0, 0, 0, 0);
            SpawnPlayer(playerid);
        }
        else if(!response) return Kick(playerid); }
    }
    return 1;
}
Reply
#4

Quote:
Originally Posted by Onfroi
Посмотреть сообщение
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == LOGIN_DIALOG)
    {
        if(response)
        {
            if(strcmp(inputtext, PlayerInfo[playerid][pPass], true) == 0)
            {
                SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ], PlayerInfo[playerid][pAngle], 0, 0, 0, 0, 0, 0);
                GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
                SpawnPlayer(playerid);

                new string[64];
                format(string, sizeof(string), "{8080FF}HAI!: {FFFFFF}Welcome %s!", GetName(playerid));
                SendClientMessage(playerid, -1, string);
            }
            else
            {
                ShowPlayerDialog(playerid, LOGIN_DIALOG, DIALOG_STYLE_PASSWORD, "Login", "Wrong password! Try again!", "Login", "Disconnect");
            }
        }
        else if(!response) return Kick(playerid); }
    }
    if(dialogid == REGISTER_DIALOG)
    {
        if(response)
        {
            if(strlen(inputtext) > 24) return ShowPlayerDialog(playerid, REGISTER_DIALOG, DIALOG_STYLE_INPUT, "Register", "Password should be from 8 to 24 charachters long!", "Register", "Disconnect");

            mysql_format(sqldb, query, sizeof(query), "INSERT INTO accounts (accname, accpass) VALUES ('%e', '%e')", GetName(playerid), inputtext);
            mysql_tquery(sqldb, query, "InsertPlayer", "i", playerid);
            SetSpawnInfo(playerid, 0, NEW_SKIN, 1481.1176, -1768.2968, 18.7958, 357.9035, 0, 0, 0, 0, 0, 0);
            SpawnPlayer(playerid);
        }
        else if(!response) return Kick(playerid); }
    }
    return 1;
}
Quote:

C:\Users\Gebruiker\Desktop\SA-MP server\gamemodes\mysql.pwn(329) : warning 209: function "OnDialogResponse" should return a value
C:\Users\Gebruiker\Desktop\SA-MP server\gamemodes\mysql.pwn(330) : error 010: invalid function or declaration
C:\Users\Gebruiker\Desktop\SA-MP server\gamemodes\mysql.pwn(332) : error 010: invalid function or declaration
C:\Users\Gebruiker\Desktop\SA-MP server\gamemodes\mysql.pwn(334) : error 010: invalid function or declaration
C:\Users\Gebruiker\Desktop\SA-MP server\gamemodes\mysql.pwn(336) : error 021: symbol already defined: "mysql_format"
C:\Users\Gebruiker\Desktop\SA-MP server\gamemodes\mysql.pwn(341) : error 010: invalid function or declaration
C:\Users\Gebruiker\Desktop\SA-MP server\gamemodes\mysql.pwn(343) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


6 Errors.

And with my own script i had no errors.
Reply
#5

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == REGISTER_DIALOG)
    {
        if(!response) Kick(playerid);
        else if(!(7 < strlen(inputtext) < 25)) ShowPlayerDialog(playerid, REGISTER_DIALOG, DIALOG_STYLE_INPUT, "Register", "Password should be from 8 to 24 charachters long!", "Register", "Disconnect");
        else{
            mysql_format(sqldb, query, sizeof(query), "INSERT INTO accounts (accname, accpass) VALUES ('%e', '%e')", GetName(playerid), inputtext);
            mysql_tquery(sqldb, query, "InsertPlayer", "i", playerid);
            SetSpawnInfo(playerid, 0, NEW_SKIN, 1481.1176, -1768.2968, 18.7958, 357.9035, 0, 0, 0, 0, 0, 0);
            SpawnPlayer(playerid);
        }
        return 1;
    }
    if(dialogid == LOGIN_DIALOG)
    {
        if(!response) Kick(playerid);
        else if(!inputtext[0] || strcmp(inputtext, PlayerInfo[playerid][pPass], true) != 0) ShowPlayerDialog(playerid, LOGIN_DIALOG, DIALOG_STYLE_PASSWORD, "Login", "Wrong password! Try again!", "Login", "Disconnect");
        else{
            SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ], PlayerInfo[playerid][pAngle], 0, 0, 0, 0, 0, 0);
            GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
            SpawnPlayer(playerid);

            new string[64];
            format(string, sizeof(string), "{8080FF}HAI!: {FFFFFF}Welcome %s!", GetName(playerid));
            SendClientMessage(playerid, -1, string);
        }
        return 1;
    }
    return 0;
}
Added !inputtext[0] - if inputtext is empty strcmp returns 'match'
Reply
#6

https://sampwiki.blast.hk/wiki/Strcmp
Read important note below.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)