help returning dialog - if(strlen(inputtext) < 4) not working properly
#1

Why is that I can still register without typing password or even by putting 3 characters less. Can someone help me solve this?

And it should return to Register dialog after putting invalid password. Coz mine after I put empty password and I clicked register I spawned.

Код:
	if(dialogid == DIALOG_REGISTER)
	{
		if(!response)
		{
		    SendClientMessage(playerid,-1,""RED"[KICK] "WHITE"You have been kicked for pressing the Leave button.");
		    KickEx(playerid);
		}
		if(response)
		{
		    if(strlen(inputtext) < 4)return SendClientMessage(playerid, -1, ""RED"[REGISTER] "WHITE"Your password should have atleast 4 characters!");
		    new Query[500];
		    new hashed[129];
		    new year, month, day;
		    getdate(year, month, day);
		    WP_Hash(hashed, sizeof(hashed), inputtext);
		    format(Query,sizeof(Query),"INSERT INTO `users` (`Name`,`Password`,`Admin`,`Founder`,`Score`,`Money`,`Kills`,`Deaths`, `Skin`, `RegDate`) VALUES ('%s','%s','0','0','0','0','0','0','0', '%d/%d/%d')",GetName(playerid),hashed, day,month,year);
		    mysql_function_query(cHandle, Query, false, "", "d", playerid);
		    new Query1[368];
		    format(Query1,sizeof(Query1),"UPDATE `users` SET `Banned` = '0', `RegIP` = '%s', `IP` = '%s' WHERE `Name` = '%s'",GetIp(playerid),GetIp(playerid),GetName(playerid));
                    mysql_function_query(cHandle, Query1, false, "", "d", playerid);
                    ResetPlayerMoney(playerid);
                    SetPlayerLevel(playerid, 0);
                    PlayerInfo[playerid][TimeOnline] = 0;
                    playerOnline[playerid] = gettime();
                    SendClientMessageEx(playerid,-1,""RED"[REGISTER] "GREEN"You are now successfully registered in our database! | Name: %s | Password: %s",GetName(playerid),inputtext);
	            new message[128];
	            format(message, sizeof(message), "04[REGISTER] 01%s has registered in the server! (IP: %s)", GetName(playerid), GetIp(playerid));
	            IRC_GroupSay(groupIDA, IRC_ADMIN_CHANNEL, message);
	          }
          }
Reply
#2

pawn Код:
if(strlen(inputtext) < 4 && strlen(inputtext) > 50) // 50 max characters
{
    SendClientMessage(playerid, -1, ""RED"[REGISTER] "WHITE"Your password should have atleast 4 characters max 50!");
    ShowDialogRegister// Edit
}
else if(strlen(inputtext) > 4 && strlen(inputtext) < 50)
{
    Fuction register..
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTER)
    {
        if(!response) return SendClientMessage(playerid, -1, "register canceled.", Kick(playerid);
        if(response)
        {
            if(strlen(inputtext) < 4 && strlen(inputtext) > 50) // 50 max characters
            {
                SendClientMessage(playerid, -1, ""RED"[REGISTER] "WHITE"Your password should have atleast 4 characters max 50!");
                ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Your password should have atleast 4 characters max 50!", "OK", "exit");
            }
            else if(strlen(inputtext) > 4 && strlen(inputtext) < 50)
            {
                new Query[500], Query1[368], hashed[129], year, month, day;
                getdate(year, month, day);
                WP_Hash(hashed, sizeof(hashed), inputtext);
                format(Query,sizeof(Query),"INSERT INTO `users` (`Name`,`Password`,`Admin`,`Founder`,`Score`,`Money`,`Kills`,`Deaths`, `Skin`, `RegDate`) VALUES ('%s','%s','0','0','0','0','0','0','0', '%d/%d/%d')",GetName(playerid),hashed, day,month,year);
                mysql_function_query(cHandle, Query, false, "", "d", playerid);

                format(Query1,sizeof(Query1),"UPDATE `users` SET `Banned` = '0', `RegIP` = '%s', `IP` = '%s' WHERE `Name` = '%s'",GetIp(playerid),GetIp(playerid),GetName(playerid));
                mysql_function_query(cHandle, Query1, false, "", "d", playerid);
                ResetPlayerMoney(playerid);
                SetPlayerLevel(playerid, 0);
                PlayerInfo[playerid][TimeOnline] = 0;
                playerOnline[playerid] = gettime();
                SendClientMessageEx(playerid,-1,""RED"[REGISTER] "GREEN"You are now successfully registered in our database! | Name: %s | Password: %s",GetName(playerid),inputtext);
                new message[128];
                format(message, sizeof(message), "04[REGISTER] 01%s has registered in the server! (IP: %s)", GetName(playerid), GetIp(playerid));
                IRC_GroupSay(groupIDA, IRC_ADMIN_CHANNEL, message);
            }
        }
   }
   return true;
}
Reply
#3

Quote:
Originally Posted by JuanStone
Посмотреть сообщение
pawn Код:
if(strlen(inputtext) < 4 && strlen(inputtext) > 50) // 50 max characters
{
    SendClientMessage(playerid, -1, ""RED"[REGISTER] "WHITE"Your password should have atleast 4 characters max 50!");
    ShowDialogRegister// Edit
}
else if(strlen(inputtext) > 4 && strlen(inputtext) < 50)
{
    Fuction register..
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTER)
    {
        if(!response) return SendClientMessage(playerid, -1, "register canceled.", Kick(playerid);
        if(response)
        {
            if(strlen(inputtext) < 4 && strlen(inputtext) > 50) // 50 max characters
            {
                SendClientMessage(playerid, -1, ""RED"[REGISTER] "WHITE"Your password should have atleast 4 characters max 50!");
                ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Your password should have atleast 4 characters max 50!", "OK", "exit");
            }
            else if(strlen(inputtext) > 4 && strlen(inputtext) < 50)
            {
                new Query[500], Query1[368], hashed[129], year, month, day;
                getdate(year, month, day);
                WP_Hash(hashed, sizeof(hashed), inputtext);
                format(Query,sizeof(Query),"INSERT INTO `users` (`Name`,`Password`,`Admin`,`Founder`,`Score`,`Money`,`Kills`,`Deaths`, `Skin`, `RegDate`) VALUES ('%s','%s','0','0','0','0','0','0','0', '%d/%d/%d')",GetName(playerid),hashed, day,month,year);
                mysql_function_query(cHandle, Query, false, "", "d", playerid);

                format(Query1,sizeof(Query1),"UPDATE `users` SET `Banned` = '0', `RegIP` = '%s', `IP` = '%s' WHERE `Name` = '%s'",GetIp(playerid),GetIp(playerid),GetName(playerid));
                mysql_function_query(cHandle, Query1, false, "", "d", playerid);
                ResetPlayerMoney(playerid);
                SetPlayerLevel(playerid, 0);
                PlayerInfo[playerid][TimeOnline] = 0;
                playerOnline[playerid] = gettime();
                SendClientMessageEx(playerid,-1,""RED"[REGISTER] "GREEN"You are now successfully registered in our database! | Name: %s | Password: %s",GetName(playerid),inputtext);
                new message[128];
                format(message, sizeof(message), "04[REGISTER] 01%s has registered in the server! (IP: %s)", GetName(playerid), GetIp(playerid));
                IRC_GroupSay(groupIDA, IRC_ADMIN_CHANNEL, message);
            }
        }
   }
   return true;
}
Hi mate. thanks for your help but now I tried to put less than 3 letters and click register but it didn't show any "Your password should have atleast 4 characters max 50!" it just directs me to spawn menu button. hmm, so I guess there is something wrong with you gave.
Reply
#4

Forgiveness, change it to this.

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTER)
    {
        if(!response) return SendClientMessage(playerid, -1, "register canceled.", Kick(playerid);
        if(response)
        {
            if(strlen(inputtext) < 4 || strlen(inputtext) > 50) // 50 max characters
            {
                SendClientMessage(playerid, -1, ""RED"[REGISTER] "WHITE"Your password should have atleast 4 characters max 50!");
                ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Your password should have atleast 4 characters max 50!", "OK", "exit");
            }
            else if(strlen(inputtext) > 4 && strlen(inputtext) < 50)
            {
                new Query[500], Query1[368], hashed[129], year, month, day;
                getdate(year, month, day);
                WP_Hash(hashed, sizeof(hashed), inputtext);
                format(Query,sizeof(Query),"INSERT INTO `users` (`Name`,`Password`,`Admin`,`Founder`,`Score`,`Money`,`Kills`,`Deaths`, `Skin`, `RegDate`) VALUES ('%s','%s','0','0','0','0','0','0','0', '%d/%d/%d')",GetName(playerid),hashed, day,month,year);
                mysql_function_query(cHandle, Query, false, "", "d", playerid);

                format(Query1,sizeof(Query1),"UPDATE `users` SET `Banned` = '0', `RegIP` = '%s', `IP` = '%s' WHERE `Name` = '%s'",GetIp(playerid),GetIp(playerid),GetName(playerid));
                mysql_function_query(cHandle, Query1, false, "", "d", playerid);
                ResetPlayerMoney(playerid);
                SetPlayerLevel(playerid, 0);
                PlayerInfo[playerid][TimeOnline] = 0;
                playerOnline[playerid] = gettime();
                SendClientMessageEx(playerid,-1,""RED"[REGISTER] "GREEN"You are now successfully registered in our database! | Name: %s | Password: %s",GetName(playerid),inputtext);
                new message[128];
                format(message, sizeof(message), "04[REGISTER] 01%s has registered in the server! (IP: %s)", GetName(playerid), GetIp(playerid));
                IRC_GroupSay(groupIDA, IRC_ADMIN_CHANNEL, message);
            }
        }
   }
   return true;
}
Reply
#5

pawn Код:
if(dialogid == DIALOG_REGISTER)
    {
        if(!response)
        {
            SendClientMessage(playerid,-1,""RED"[KICK] "WHITE"You have been kicked for pressing the Leave button.");
            KickEx(playerid);
        }
        if(response)
        {
            if(strlen(inputtext) < 4 || strlen(inputtext) > 28)             {                ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "", "Register", "Quit");            }
            new Query[500];
            new hashed[129];
            new year, month, day;
            getdate(year, month, day);
            WP_Hash(hashed, sizeof(hashed), inputtext);
            format(Query,sizeof(Query),"INSERT INTO `users` (`Name`,`Password`,`Admin`,`Founder`,`Score`,`Money`,`Kills`,`Deaths`, `Skin`, `RegDate`) VALUES ('%s','%s','0','0','0','0','0','0','0', '%d/%d/%d')",GetName(playerid),hashed, day,month,year);
            mysql_function_query(cHandle, Query, false, "", "d", playerid);
            new Query1[368];
            format(Query1,sizeof(Query1),"UPDATE `users` SET `Banned` = '0', `RegIP` = '%s', `IP` = '%s' WHERE `Name` = '%s'",GetIp(playerid),GetIp(playerid),GetName(playerid));
                    mysql_function_query(cHandle, Query1, false, "", "d", playerid);
                    ResetPlayerMoney(playerid);
                    SetPlayerLevel(playerid, 0);
                    PlayerInfo[playerid][TimeOnline] = 0;
                    playerOnline[playerid] = gettime();
                    SendClientMessageEx(playerid,-1,""RED"[REGISTER] "GREEN"You are now successfully registered in our database! | Name: %s | Password: %s",GetName(playerid),inputtext);
                new message[128];
                format(message, sizeof(message), "04[REGISTER] 01%s has registered in the server! (IP: %s)", GetName(playerid), GetIp(playerid));
                IRC_GroupSay(groupIDA, IRC_ADMIN_CHANNEL, message);
              }
          }
Reply
#6

Quote:
Originally Posted by Clad
Посмотреть сообщение
pawn Код:
if(dialogid == DIALOG_REGISTER)
    {
        if(!response)
        {
            SendClientMessage(playerid,-1,""RED"[KICK] "WHITE"You have been kicked for pressing the Leave button.");
            KickEx(playerid);
        }
        if(response)
        {
            if(strlen(inputtext) < 4 || strlen(inputtext) > 28)             {                ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "", "Register", "Quit");            }
            new Query[500];
            new hashed[129];
            new year, month, day;
            getdate(year, month, day);
            WP_Hash(hashed, sizeof(hashed), inputtext);
            format(Query,sizeof(Query),"INSERT INTO `users` (`Name`,`Password`,`Admin`,`Founder`,`Score`,`Money`,`Kills`,`Deaths`, `Skin`, `RegDate`) VALUES ('%s','%s','0','0','0','0','0','0','0', '%d/%d/%d')",GetName(playerid),hashed, day,month,year);
            mysql_function_query(cHandle, Query, false, "", "d", playerid);
            new Query1[368];
            format(Query1,sizeof(Query1),"UPDATE `users` SET `Banned` = '0', `RegIP` = '%s', `IP` = '%s' WHERE `Name` = '%s'",GetIp(playerid),GetIp(playerid),GetName(playerid));
                    mysql_function_query(cHandle, Query1, false, "", "d", playerid);
                    ResetPlayerMoney(playerid);
                    SetPlayerLevel(playerid, 0);
                    PlayerInfo[playerid][TimeOnline] = 0;
                    playerOnline[playerid] = gettime();
                    SendClientMessageEx(playerid,-1,""RED"[REGISTER] "GREEN"You are now successfully registered in our database! | Name: %s | Password: %s",GetName(playerid),inputtext);
                new message[128];
                format(message, sizeof(message), "04[REGISTER] 01%s has registered in the server! (IP: %s)", GetName(playerid), GetIp(playerid));
                IRC_GroupSay(groupIDA, IRC_ADMIN_CHANNEL, message);
              }
          }
Still the same. I can still register without password or even less than 3 letters. Maybe theres a problem with mysql so I'd check it and it says "CMySQLHandle::Create - connection already exists" from mysql_log

edit: i didn't see juanstone edited post. im going to try. hope it works
Reply
#7

@JuanStone - thanks mate it seems like working fine now. And last one, why is that when I registered successfully then I exit the game and after logging in back my account, I input any word or text and it logs me in even its wrong (it didn't tell me that my password is incorrect) I'm not sure but it looks like mysql is accepting even if its wrong. I've checked the localhost phpmyadmin database and I can see the password were saved.

Код:
	if(dialogid == DIALOG_LOGIN)
	{
		if(!response)
		{
			ShowRenameScreen(playerid);
		}
		if(response)
		{
            new pHashed[129];
			WP_Hash(pHashed, sizeof(pHashed), inputtext);
			if(!strcmp(PlayerInfo[playerid][Password], pHashed, true))
			{
			    new Query[100];
			    format(Query,sizeof(Query),"SELECT * FROM `users` WHERE `Name` = '%s'",GetName(playerid));
			    mysql_function_query(cHandle, Query, true, "LoginPlayer", "d", playerid);
			    new Query1[100];
			 	format(Query1,sizeof(Query1),"UPDATE `users` SET `IP` = '%s' WHERE `Name` = '%s'",GetIp(playerid), GetName(playerid));
	            mysql_function_query(cHandle, Query1, false, "", "d", playerid);
			}
			else
			{
				ShowLoginScreen(playerid);
				SendClientMessage(playerid, -1, ""RED"[PASS] "WHITE"The password you entered is incorrect, please enter the correct password to login!");
			}
		}
	}
Reply
#8

I am sorry I did not understand anything, you try to say who was admitted with any text ?.
Reply
#9

Quote:
Originally Posted by JuanStone
Посмотреть сообщение
I am sorry I did not understand anything, you try to say who was admitted with any text ?.
Got it mate. Thanks btw. I solved it by reverting back mysql latest version to old version r7 lol.
Reply
#10

Quote:
Originally Posted by kampuman
Посмотреть сообщение
Got it mate. Thanks btw. I solved it by reverting back mysql latest version to old version r7 lol.
Show "LoginPlayer"

pawn Код:
new i_bad_password[MAX_PLAYERS];

public OnPlayerConnect..
{
    i_bad_password[playerid] = 0;
    return true;
}

        if(dialogid ==  DIALGO_LOGIN)
        {
            if(!response) return ShowPlayerDialog(playerid, DIALGO_LOGIN, DIALOG_STYLE_PASSWORD, "Login","account is already registed, enter your password", "OK", "");
            if(response)
            {
                new i_query[200], i_password[50];
                WP_Hash(i_password, sizeof(i_password), inputtext);
                format(i_query, sizeof(i_query), "SELECT `Name` FROM users WHERE Name = '%s' AND Password = '%s'", GetName(playerid), i_password);
                mysql_query(i_query);
                mysql_store_result();
               
                if(mysql_num_rows() == 1)
                {
                    Load data_user(playerid); // edit your function load dats.
                }
                if(!mysql_num_rows())
                {
                    i_bad_password[playerid]++;
                    if(i_bad_password[playerid] < 5)
                    {
                        SendClientMessage(playerid, -1, "The password you entered is incorrect, please enter the correct password to login!");
                        ShowPlayerDialog(playerid, DIALGO_LOGIN, DIALOG_STYLE_PASSWORD, "Login","enter your password correct", "OK", "");
                    }
                    else if(i_bad_password[playerid] >= 5)
                    {
                        format(i_query, sizeof(i_query), "%s kicked reason: 5 incorrect logins.", GetName(playerid));
                        SendClientMessage(playerid, -1, i_query);
                        Kick(playerid);
                    }
                }
                mysql_free_result();
            }
        }
    }
    return true;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)