Перейти к содержанию
VycheslavDikunets

баг с /alogin

Рекомендуемые сообщения

VycheslavDikunets

Здравствуйте. При написании /alogin, когда ввожу неправильный пароль пишет что пароль правильно, а потом снизу что пароль неверный. Помогите исправить

PlayerLogged[playerid] = true;
Hunger(playerid);
if(p_info[playerid][pAdmin] > ADM_NONE) SendErr(playerid, "Вы вошли как администратор. Для авторизации введите {FFCC00}(/alogin)");
if(GetPVarInt(playerid,"e_time") > gettime() && GetPVarFloat(playerid,"e_X") != 0.0 && GetPVarFloat(playerid,"e_Y") != 0.0 &&  GetPVarFloat(playerid,"e_Z") != 0.0 && p_info[playerid][pJail] == 0)
  
  
mysql_format(dbHandle, string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s' AND `password` = '%e'", GetName(playerid), inputtext);
mysql_tquery(dbHandle, string, "AloginAuth", "is", playerid, inputtext);
SendClientMessage(playerid,COLOR_YELLOW, "Вы успешно вошли как администратор!");

forward AloginAuth(playerid, inputtext[]);
public AloginAuth(playerid, inputtext[])
{
	new rows, fields;
	cache_get_data(rows, fields);
	if(!rows)
	{
		SendErr(playerid, "Неверный пароль");
		SetPVarInt(playerid, "attempt_pass", GetPVarInt(playerid, "attempt_pass") + 1);
		if(GetPVarInt(playerid, "attempt_pass") > 3)
		{
			DeletePVar(playerid, "attempt_pass");
            Kick(playerid);
		}
	}
}

cmd:alogin(playerid, params[])
{
	if(GetPVarInt(playerid, "check_alogin") > gettime()) return 1;
	else if(AdminLogged[playerid]) return SendErr(playerid, "Вы уже авторизовались как администратор!");
	new string[128];
	format(string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s'", GetName(playerid));
	mysql_tquery(dbHandle, string, "Alogin", "is", playerid, GetName(playerid));
	SetPVarInt(playerid, "check_alogin", gettime()+5);
	return 1;
}
  

 

OhmWu0aDhgw.jpg

Изменено пользователем VycheslavDikunets

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vegas

А где ты вызываешь этот код?
 

PlayerLogged[playerid] = true;
Hunger(playerid);
if(p_info[playerid][pAdmin] > ADM_NONE) SendErr(playerid, "Вы вошли как администратор. Для авторизации введите {FFCC00}(/alogin)");
if(GetPVarInt(playerid,"e_time") > gettime() && GetPVarFloat(playerid,"e_X") != 0.0 && GetPVarFloat(playerid,"e_Y") != 0.0 &&  GetPVarFloat(playerid,"e_Z") != 0.0 && p_info[playerid][pJail] == 0)
  
  
mysql_format(dbHandle, string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s' AND `password` = '%e'", GetName(playerid), inputtext);
mysql_tquery(dbHandle, string, "AloginAuth", "is", playerid, inputtext);
SendClientMessage(playerid,COLOR_YELLOW, "Вы успешно вошли как администратор!");

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
VycheslavDikunets

1. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)

2. public OnPlayerClickTextDraw(playerid, Text:clickedid) вроде бы 

надеюсь я правильно понял :D

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vegas

т.е если я не ошибаюсь , твоя авторизация в админ-панеле на текстдравах?
Оке.

В твоём коде (мб я не заметил) нет проверки на введённый пароль, т.е нету вот примерно такого:
 

Спойлер

aavg1Ry7VM4.jpg

И советую сделать точно также как и сделал я :)

Спойлер

l9XkYZbHFeQ.jpg

 

Изменено пользователем Vegas

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
VycheslavDikunets

Нихера не помогает. Вот строчки. У меня не на тд, я не то скинул, извини.

forward AloginAuth(playerid, inputtext[]);
public AloginAuth(playerid, inputtext[])
{
	new rows, fields;
	cache_get_data(rows, fields);
	if(!rows)
	{
		SendErr(playerid, "Неверный пароль");
		SetPVarInt(playerid, "attempt_pass", GetPVarInt(playerid, "attempt_pass") + 1);
		if(GetPVarInt(playerid, "attempt_pass") > 3)
		{
			DeletePVar(playerid, "attempt_pass");
            Kick(playerid);
		}
	}
	else
	{
		new string[144];
		AdminLogged[playerid] = true;
		p_info[playerid][pAdmin] = cache_get_row_int(0, 1, dbHandle);
		AdminInfo[playerid][admGoto] = cache_get_row_int(0, 6, dbHandle);
		AdminInfo[playerid][admGethere] = cache_get_row_int(0, 7, dbHandle);
		AdminInfo[playerid][admSpectate] = cache_get_row_int(0, 8, dbHandle);
		AdminInfo[playerid][admTimeMin] = cache_get_row_int(0, 9, dbHandle);
		AdminInfo[playerid][admAlog] = cache_get_row_int(0, 10, dbHandle);
		if(p_info[playerid][pAdmin] != 9)
		{
			if(p_info[playerid][pSex] == 1) format(string, sizeof(string), "%s[%i] авторизовался.", GetName(playerid), playerid);
			else format(string, sizeof(string), "%s[%i] авторизовалась.", GetName(playerid), playerid);
			SendAdminMessage(COLOR_BLUE, string);
		}
		ShowWarningPanelAC(playerid);
		for(new i; i < 10; i++) TextDrawShowForPlayer(playerid, CheatShow[0][i]), TextDrawShowForPlayer(playerid, CheatShow[1][i]);
		Iter_Add(Admins, playerid);
		new day, month, year;
		getdate(year, month, day);
		mysql_format(dbHandle, string, 144, "UPDATE "T_ADMIN" SET `last_connect` = '%d.%d.%d' WHERE `name` = '%s' LIMIT 1", day, month, year, GetName(playerid));
		mysql_tquery(dbHandle, string, "", "");
	}
	return 1;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vegas

В смысле не помогает? 
Я скинул "систему" /logadm, в чём проблема скопировать - вставить,  и поменять переменные под свой сервер?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
VycheslavDikunets

Вот что получилось 

199722610_.PNG.4c38ffea22d7674e129d62b0992ed9a9.PNG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
VycheslavDikunets

up

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
PEACEFUL

Покажите еще раз, пожалуйста, весь код в одном сообщении

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
VycheslavDikunets
					if(!strlen(inputtext)) return ShowPlayerDialogEx(playerid, D_ALOGIN, DIALOG_STYLE_PASSWORD, "{5aa14a}>> Доступ администратора", "\
				{FFFFFF}Введите Ваш пароль от панели администратора", "Принять", "Отмена");
					mysql_format(dbHandle, string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s' AND `password` = '%e'", GetName(playerid), inputtext);
					mysql_tquery(dbHandle, string, "AloginAuth", "is", playerid, inputtext);
					SendClientMessage(playerid,COLOR_YELLOW, "Вы успешно вошли как администратор!");

/////////////////////////////////////
forward AloginAuth(playerid, inputtext[]);
public AloginAuth(playerid, inputtext[])
{
	new rows, fields;
	cache_get_data(rows, fields);
	if(!rows)
	{
		SendErr(playerid, "Неверный пароль");
		SetPVarInt(playerid, "attempt_pass", GetPVarInt(playerid, "attempt_pass") + 1);
		if(GetPVarInt(playerid, "attempt_pass") > 3)
		{
			DeletePVar(playerid, "attempt_pass");
            Kick(playerid);
		}
	}
	else
	{
		new string[144];
		AdminLogged[playerid] = true;
		p_info[playerid][pAdmin] = cache_get_row_int(0, 1, dbHandle);
		AdminInfo[playerid][admGoto] = cache_get_row_int(0, 6, dbHandle);
		AdminInfo[playerid][admGethere] = cache_get_row_int(0, 7, dbHandle);
		AdminInfo[playerid][admSpectate] = cache_get_row_int(0, 8, dbHandle);
		AdminInfo[playerid][admTimeMin] = cache_get_row_int(0, 9, dbHandle);
		AdminInfo[playerid][admAlog] = cache_get_row_int(0, 10, dbHandle);

		if(p_info[playerid][pAdmin] != 9)
		{
			if(p_info[playerid][pSex] == 1) format(string, sizeof(string), "%s[%i] авторизовался.", GetName(playerid), playerid);
			else format(string, sizeof(string), "%s[%i] авторизовалась.", GetName(playerid), playerid);
			SendAdminMessage(COLOR_BLUE, string);
		}
		
		ShowWarningPanelAC(playerid);
		for(new i; i < 10; i++) TextDrawShowForPlayer(playerid, CheatShow[0][i]), TextDrawShowForPlayer(playerid, CheatShow[1][i]);

		Iter_Add(Admins, playerid);

		new day, month, year;
		getdate(year, month, day);
		mysql_format(dbHandle, string, 144, "UPDATE "T_ADMIN" SET `last_connect` = '%d.%d.%d' WHERE `name` = '%s' LIMIT 1", day, month, year, GetName(playerid));
		mysql_tquery(dbHandle, string, "", "");
	}
	return 1;
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.