Login Bug


Započeo 1337, Januar 28, 2018, 22:06:17 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Detaljan opis problema:Jednostavno kad se neko loguje,ako ukuca pogresnu lozinku otvorit ce mu da je lozinka pogresna.A ako klikne samo enter prodje dalje bez problema,tj. samo se uloguje.
Dio skripte:
if(Svasta[playerid][loginpokusaji] == 0)
				{
                    Svasta[playerid][loginpokusaji]++;
                    new stringb[512];
				    format(stringb, sizeof(stringb), ""COL_AGRP"Dobrodosli nazad "COL_BIJELA"%s, "COL_AGRP"na "COL_BIJELA"Arena Gaming RolePlay "COL_AGRP"server.\nU prazni prostor ispod unesite vasu lozinku:\nImate jos "COL_BIJELA"3 "COL_AGRP"pokusaja", GetName(playerid));
					SPD(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""COL_BIJELA"Login", stringb, "Login", "Kick");
				}
				else if(Svasta[playerid][loginpokusaji] == 1)
				{
                    Svasta[playerid][loginpokusaji]++;
                    new stringb[512];
				    format(stringb, sizeof(stringb), ""COL_AGRP"Dobrodosli nazad "COL_BIJELA"%s, "COL_AGRP"na "COL_BIJELA"Arena Gaming RolePlay "COL_AGRP"server.\nU prazni prostor ispod unesite vasu lozinku:\nImate jos "COL_BIJELA"2 "COL_AGRP"pokusaja", GetName(playerid));
					SPD(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""COL_BIJELA"Login", stringb, "Login", "Kick");
				}
				else if(Svasta[playerid][loginpokusaji] == 2)
				{
                    Svasta[playerid][loginpokusaji]++;
                    new stringb[512];
				    format(stringb, sizeof(stringb), ""COL_AGRP"Dobrodosli nazad "COL_BIJELA"%s, "COL_AGRP"na "COL_BIJELA"Arena Gaming RolePlay "COL_AGRP"server.\nU prazni prostor ispod unesite vasu lozinku:\nImate jos "COL_BIJELA"1 "COL_AGRP"pokusaj", GetName(playerid));
					SPD(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""COL_BIJELA"Login", stringb, "Login", "Kick");
				}
				else if(Svasta[playerid][loginpokusaji] == 3)
				{
                    Svasta[playerid][loginpokusaji] = 0;
					apac_Kick(playerid, "AngelAC: Pogrijesili ste 3 puta lozinku. Kick.");
				}
			}
		}
	}

Neke slike/video za lakse dobivanje pomoci(neobavezno):

Nije mi baš najjasnije..
Ako ukuca jednom i bude mu pogrešna moći će dalje? Ili nakon 3 puta?Ako je nakon 3 puta postavi nam funkciju
apac_Kick
Poslednja Izmena: Januar 28, 2018, 23:12:37 POSLE PODNE od Paul Castellano

Jednostavno,ako ukucas lozinku koja nije tacna npr. trenutna lozinka je 123 ti ukucas 1234,otvorit ce ti da je pogresna lozinka.A kad se ovako ulogujes samo kliknes enter i udjes bez da ti otvori da je lozinka netacna ili sl.

Definiro sam neke funkcije,pa vidi da li valja ili treba jos nesto.
stock apac_Kick(playerid, razlog[])
{
	SetTimerEx("KickTimer", 300, false, "d", playerid);
	SendClientMessage(playerid, COLOR_APRP, razlog);
	return 1;
}

if(dialogid == DIALOG_LOGIN)
	{
	    if(!response) return apac_Kick(playerid, "AngelAC: "COL_BIJELA"Prekinuli ste login. Kick.");
		if(response)
		{
		    if(!strcmp(inputtext, PlayerInfo[playerid][pLozinka], false))


stock apac_Kick(playerid, razlog[])
{
	SetTimerEx("KickTimer", 300, false, "d", playerid);
	SendClientMessage(playerid, COLOR_APRP, razlog);
	return 1;
}

forward KickTimer(playerid);
public KickTimer(playerid)
{
	if(fexist(UserPath(playerid)))
	{
		SacuvajIgraca(playerid);
		Kick(playerid);
	}
	else if(!fexist(UserPath(playerid)))
	{
		Kick(playerid);
	}
	return 1;
}

Jasno pise na wikiju http://wiki.sa-mp.com/wiki/Strcmp
This function returns 0 if either string is empty. Check for null strings with isnull(). If you do not, for example, people can login to anyone's account by simply entering a blank password.

// Check for null strings with isnull()
if(!strcmp(string1, string2) && !isnull(string1) && !isnull(string2))
 
// Definition for isnull():
#if !defined isnull
    #define isnull(%1) ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#endif

jednostavno koristi strlen za duzinu user input


“Without requirements or design, programming is the art of adding bugs to an empty text file.” - Louis Srygley

Citat: Butigan.MySql poslato Januar 29, 2018, 10:36:54 PRE PODNE
jednostavno koristi strlen za duzinu user input
Zasto ne bi koristio u if-u !isnull(inputtext)?