Whirlpool register not working MySQL r41-4
#1

Plugins all loaded
server.cfg > plugins mysql Whirlpool

My problem is when i try to enter my password to register and enter it and all dialog is gone only spawn button to show
And nothing add to database

https://imgur.com/2OuBJ4x

Here is error logs :

Код:
[10:59:51] [plugins/mysql] error #1064 while executing query "INSERT INTO `players` (`Username`, `Password) VALUES ('Sssss', '1B898A6CB1E67EB486E88D1B0BDD675220BFE9F9AF56B6DE6B9F44078EDE135CBCD331EEC4DD619F62FE92D56F45CBC22A4F2F3033AF1814B059471FECF56EE5')": You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`Password) VALUES ('Sssss', '1B898A6CB1E67EB486E88D1B0BDD675220BFE9F9AF56B6DE6B9' at line 1
This is the code :

Код:
native WP_Hash(buffer[], len, const str[]); Added
Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	switch (dialogid)
	{
		case DIALOG_UNUSED: return 1; // Useful for dialogs that contain only information and we do nothing depending on whether they responded or not

		case DIALOG_LOGIN:
		{
			if (!response) return Kick(playerid);

            new hashed_pass[129];

			WP_Hash(hashed_pass, sizeof(hashed_pass), inputtext);

			if (strcmp(hashed_pass, PlayerInfo[playerid][pPassword]) == 0)
			{
				//correct password, spawn the player
				ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_MSGBOX, "Login", "You have been successfully logged in.", "Okay", "");

				// sets the specified cache as the active cache so we can retrieve the rest player data
				cache_set_active(PlayerInfo[playerid][Cache_ID]);

				AssignPlayerData(playerid);

				// remove the active cache from memory and unsets the active cache as well
				cache_delete(PlayerInfo[playerid][Cache_ID]);
				PlayerInfo[playerid][Cache_ID] = MYSQL_INVALID_CACHE;

				KillTimer(PlayerInfo[playerid][LoginTimer]);
				PlayerInfo[playerid][LoginTimer] = 0;
				PlayerInfo[playerid][IsLoggedIn] = true;

				// spawn the player to their last saved position after login
				SetSpawnInfo(playerid, NO_TEAM, 0, PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ], PlayerInfo[playerid][pPosA], 0, 0, 0, 0, 0, 0);
				SpawnPlayer(playerid);
			}
			else
			{
				PlayerInfo[playerid][LoginAttempts]++;

				if (PlayerInfo[playerid][LoginAttempts] >= 3)
				{
					ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_MSGBOX, "Login", "You have mistyped your password too often (3 times).", "Okay", "");
					DelayedKick(playerid);
				}
				else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Wrong password!\nPlease enter your password in the field below:", "Login", "Abort");
			}
		}
		case DIALOG_REGISTER:
		{
			if (!response) return Kick(playerid);

			if (strlen(inputtext) <= 5) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", "Your password must be longer than 5 characters!\nPlease enter your password in the field below:", "Register", "Abort");

			new query[500];
			WP_Hash(PlayerInfo[playerid][pPassword], 129, inputtext);
			printf("Returned hash2: %s", PlayerInfo[playerid][pPassword]);

			mysql_format(g_SQL, query, sizeof query, "INSERT INTO `players` (`Username`, `Password) VALUES ('%e', '%s')", PlayerInfo[playerid][pName], PlayerInfo[playerid][pPassword]);
			mysql_tquery(g_SQL, query, "OnPlayerRegister", "d", playerid);
		}

		default: return 0; // dialog ID was not found, search in other scripts
	}
	return 1;
}
Код:
forward OnPlayerDataLoaded(playerid, race_check);
public OnPlayerDataLoaded(playerid, race_check)
{
	if (race_check != g_MysqlRaceCheck[playerid]) return Kick(playerid);

	new string[115];
	if(cache_num_rows() > 0)
	{
		cache_get_value(0, "Password", PlayerInfo[playerid][pPassword], 129);
		PlayerInfo[playerid][Cache_ID] = cache_save();
		format(string, sizeof string, "This account (%s) is registered. Please login by entering your password in the field below:", PlayerInfo[playerid][pName]);
		ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", string, "Login", "Abort");
		PlayerInfo[playerid][LoginTimer] = SetTimerEx("OnLoginTimeout", SECONDS_TO_LOGIN * 1000, false, "d", playerid);
	}
	else
	{
		format(string, sizeof string, "Welcome %s, you can register by entering your password in the field below:", PlayerInfo[playerid][pName]);
		ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", string, "Register", "Abort");
	}
	Camera(playerid);
	return 1;
}
Reply
#2

put ` at (`Username`, `Password) and make in your database varchar by (256) char.
Reply
#3

Quote:
Originally Posted by Florin48
Посмотреть сообщение
put ` at (`Username`, `Password) and make in your database varchar by (256) char.
My god what a stupid mistake
Thank you so much +REP
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)