PDA

Просмотр полной версии : [Вопрос] Пароль от админ панели.



kala4iks
21.09.2017, 22:25
Всем добрый вечер при создании системы админ паролей для входа на админку столкнулся с такой проблемой. После того как я создал систему ввел пароль он сохранился в БД но при перезаходе на сервер я ввожу любой пароль и он впускает в систему и не пишет что пароль не правильный. MySQL R41-2



CMD:aduty(playerid)
{
if(PI[playerid][pAdmin] == 0)return SendClientMessage(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Недостаточно прав для использования команды.");
if(PI[playerid][pADostup] == 0)return SPD(playerid,DIALOG_ADOSTUP,DIALOG_STYLE_INPUT,"{33CCFF}Администраторские права","{FFE4B5}У вас еще не указан пароль к администраторским правам.\nПридумайте и введите пароль отличающийся от основного пароля и нажмите ''ОК''.","ОК","Закрыть");
if(AdminDuty[playerid] == 0)
{
SPD(playerid,DIALOG_ADUTY,DIALOG_STYLE_PASSWORD,"{33CCFF}Администраторские права","{FFE4B5}Введите свой пароль для получения администраторских прав.","ОК","Закрыть");
}
else
{
static const aduty[] = "%s %s[%d] %s дежурство.";
new string[sizeof(aduty)+22+MAX_PLAYER_NAME+3+10-8];
format(string,sizeof(string),aduty,NameAdmin[PI[playerid][pAdmin]-1],PI[playerid][pName],playerid,(PI[playerid][pSex] == 1) ? ("завершил") : ("завершила"));
ABroadCast(0xFFFF00AA,string,1);
AdutyPas[playerid] = 0;
AdminDuty[playerid] = 0;
}
return 1;
}


if(dialogid == DIALOG_ADOSTUP)
{
if(!response)return 1;
if(!strlen(inputtext))return SPD(playerid,DIALOG_ADOSTUP,DIALOG_STYLE_INPUT,"{33CCFF}Администраторские права","{FFE4B5}У вас еще не указан пароль к администраторским правам.\nПридумайте и введите пароль отличающийся от основного пароля и нажмите ''ОК''.","ОК","Закрыть");
if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
{
SendClientMessage(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Длина пароля должна быть в пределах от 6 и до 32 символов.");
SPD(playerid,DIALOG_ADOSTUP,DIALOG_STYLE_INPUT,"{33CCFF}Администраторские права","{FFE4B5}У вас еще не указан пароль к администраторским правам.\nПридумайте и введите пароль отличающийся от основного пароля и нажмите ''ОК''.","ОК","Закрыть");
}
else
{//mysql_query(dbHandle,string);
strcat(PI[playerid][pApass],inputtext);
new str[42+MAX_PLAYER_NAME-4+64+10+1];
format(str,sizeof(str),"UPDATE `users` SET Apass = '%s', ADostup = '1' WHERE Name = '%s'",inputtext,PI[playerid][pName]);
mysql_tquery(dbHandle,str,"","");
static const tvoi[] = "Твой администраторский пароль: %s. Не забывай его, а лучше запиши.";
new str1[sizeof(tvoi)+32-2];
format(str1,sizeof(str1),tvoi,inputtext);
SendClientMessage(playerid,0x006400AA,str1);
static const dejurstvo[] = "%s %s[%d] %s на дежурство.";
new str2[sizeof(dejurstvo)+22+MAX_PLAYER_NAME+3+10-8];
format(str2,sizeof(str2),dejurstvo,NameAdmin[PI[playerid][pAdmin]-1],PI[playerid][pName],playerid,(PI[playerid][pSex] == 1) ? ("заступил") : ("заступила"));
ABroadCast(0xFFFF00AA,str2,1);
SendClientMessage(playerid,0xFFFF00AA,str2);
AdminDuty[playerid] = 1;
PI[playerid][pADostup] = 1;
}
}
if(dialogid == DIALOG_ADUTY)
{
if(response)
{
if(!strlen(inputtext))return SPD(playerid,DIALOG_ADUTY,DIALOG_STYLE_PASSWORD,"{33CCFF}Администраторские права","{FFE4B5}Введи свой пароль для получения администраторских прав.","ОК","Закрыть");
if(!strcmp(inputtext,PI[playerid][pApass],true))
{
static const dejurstvo[] = "%s %s[%d] %s на дежурство.";
new str[sizeof(dejurstvo)+22+MAX_PLAYER_NAME+3+10-8];
format(str,sizeof(str),dejurstvo,NameAdmin[PI[playerid][pAdmin]-1],PI[playerid][pName],playerid,(PI[playerid][pSex] == 1) ? ("заступил") : ("заступила"));
ABroadCast(0xFFFF00AA,str,1);
SendClientMessage(playerid,0xFFFF00AA,str);
AdminDuty[playerid] = 1;
}
else
{
AdutyPas[playerid]++;
static const apass[] = "[ОШИБКА] {FFFFFF}Неверный пароль от ''/aduty''. Осталось попыток {FF0000}%d{FFFFFF}.";
new string1[sizeof(apass)+1-2];
format(string1,sizeof(string1),apass,3-AdutyPas[playerid]);
SendClientMessage(playerid,0xFF0000AA,string1);
if(AdutyPas[playerid] >= 3)
{
//f(string,"Античит: %s[%d] был(а) кикнут(а). Причина: Подбор пароля к ''/aduty''.",PI[playerid][pName],playerid);
//ABroadCast(0xFFFF00AA,string,1);
SendClientMessage(playerid,0xFFFF00AA,"Ты был(а) кикнут(а) античитом. Причина: Подбор пароля к ''/aduty''.");
Kick(playerid);
}
}
return 1;
}
}

Betta
21.09.2017, 22:34
Вставь после
if(!strcmp(inputtext,PI[playerid][pApass],true))

printf("%s | %s", inputtext, PI[playerid][pApass]);

и посмотри, загружается ли пароль из базы в этот массив.