PDA

Просмотр полной версии : [Вопрос] Баг при вводе пароля ( авторизация )



Dima_Tushin
28.07.2014, 01:36
Добрый день, помогите мне исправить баг я не знаю как исправить его но у меня уже сил нету с ним мучится может кто случался с такой проблемой
Суть:

при регистрации указываю на пример пароль 123456 зарегистрировался все хорошо сохранился аккаунт!

НО: при авторизации вводишь любой Пароль вообще любой и ты в вошел в аккаунт как так?

Вот Моя Авторизация:



case 1:
{
if(response)
{
new pass[50];
if(!strlen(inputtext))
{
format(string,256,"{FFFFFF}______________________________________\n\n Добро пожаловать на Taurus RolePlay{FFFFFF}\n Этот аккаунт зарегестрирован\n\nЛогин: %s\nВведите пароль:\n______________________________________", Name(playerid));
SPD(playerid,1,DIALOG_STYLE_PASSWORD,"Авторизация",string,"Войти","");
return true;
}
for(new i = strlen(inputtext); i != 0; --i)
switch(inputtext[i])
{
case 'А'..'Я', 'а'..'я', ' ': SPD(playerid,10007,DIALOG_STYLE_MSGBOX,"{00FF00}Ошибка!","Введенный вами пароль содержит русские буквы.\n Смените раскладку клавиатуры!","Повтор","");
}
mysql_format(MYSQL,string, sizeof(string),"SELECT * FROM `akk` WHERE `pName` = '%s' AND `pKey` = '%s'", Name(playerid), pass);
mysql_query(MYSQL, string);
if(!strcmp(inputtext, pass,true))
{
OnPlayerLogin(playerid, inputtext);
}
else
{
format(string,256,"{FF6347}Внимание!Вы ввели неверный пароль!\n\tУ вас осталось(2) попытки\nПосле вы будете на время забанены");
SPD(playerid, 10007, DIALOG_STYLE_MSGBOX,"Ошибка!", string, "Повтор","Выйти");
}
}
else
{
Kick(playerid);
}
}

case 10006:
{
if(response)
{
if(!strlen(inputtext))
{
format(string,256,"{FFFFFF}______________________________________\n\n Добро пожаловать на Taurus RolePlay{FFFFFF}\n Этот аккаунт зарегестрирован\n\nЛогин: %s\nВведите пароль:\n______________________________________", Name(playerid));
SPD(playerid,10006,DIALOG_STYLE_PASSWORD,"Авторизация",string,"Войти","");
return true;
}
new pass[256];
for(new i = strlen(inputtext); i != 0; --i)
switch(inputtext[i])
{
case 'А'..'Я', 'а'..'я', ' ': SPD(playerid,10006,DIALOG_STYLE_MSGBOX,"{00FF00}Ошибка!","Введенный вами пароль содержит русские буквы.\n Смените раскладку клавиатуры!","Повтор","");
}
mysql_format(MYSQL,string, sizeof(string),"SELECT * FROM `akk` WHERE `pName` = '%s' AND `pKey` = '%s'", Name(playerid), pass);
mysql_query(MYSQL, string);
if(!strcmp(inputtext, pass, true))
{
OnPlayerLogin(playerid, inputtext);
}
else
{
SPD(playerid,69,DIALOG_STYLE_MSGBOX,"Пароль не верный!","{FF6347}Вы были кикнуты с сервера\nПричина: 'Не верный пароль'\nВведите '/q', чтобы выйти","Ок","");
Kick(playerid);
}
}
}


case 10007:
{
if(response)
{
if(!strlen(inputtext))
{
format(string,256,"{FFFFFF}______________________________________\n\n Добро пожаловать на Taurus RolePlay{FFFFFF}\n Этот аккаунт зарегестрирован\n\nЛогин: %s\nВведите пароль:\n______________________________________", Name(playerid));
SPD(playerid,10007,DIALOG_STYLE_PASSWORD,"Авторизация",string,"Войти","");
return true;
}
new pass[256];
for(new i = strlen(inputtext); i != 0; --i)
switch(inputtext[i])
{
case 'А'..'Я', 'а'..'я', ' ': SPD(playerid,10006,DIALOG_STYLE_MSGBOX,"{00FF00}Ошибка!","Введенный вами пароль содержит русские буквы.\n Смените раскладку клавиатуры!","Повтор","");
}
mysql_format(MYSQL,string, sizeof(string),"SELECT * FROM `akk` WHERE `pName` = '%s' AND `pKey` = '%s'", Name(playerid), pass);
mysql_query(MYSQL, string);
if(!strcmp(inputtext, pass, true))
{
OnPlayerLogin(playerid, inputtext);
}
else
{
format(string,256,"{FF6347}Внимание!Вы ввели неверный пароль!\n\tУ вас осталось(1) попытки\nПосле вы будете на время забанены");
SPD(playerid,10006,DIALOG_STYLE_MSGBOX,"Ошибка!",string,"Повтор","Выйти");
}
}
}
OnPlayerLogin(


forward OnPlayerLogin(playerid, password[]);
public OnPlayerLogin(playerid, password[])
{
new maximum[160], string[100], playersip[125], year, month, day;
GetPlayerIp(playerid, playersip, sizeof(playersip));
format(string, sizeof(string), "SELECT * FROM `akk` WHERE `pName` = '%s' AND `pKey` = '%s'", Name(playerid), password);
mysql_query(MYSQL, string);
new r, d; cache_get_data(r, d);
if(r)
{
///
}
}
помогите если кто знает как исправить! пишите

J-Ex
28.07.2014, 02:34
Вы создаёте переменную pass, но не присваиваете ей стринговое значение(оно остаётся пустым), а в запросе стоит именно pass, меняйте его на inputtext в SQL запросах.