PDA

Просмотр полной версии : [Вопрос] Проблемы с авторизацией.



f55555
11.04.2017, 17:32
Здравствуйте, уважаемые пользователи. У меня какие-то проблемы с авторизацией, помогите, пожалуйста.
Ввожу правильный пароль, но почему-то срабатывает действие отвечающие за неверный пароль.
Вот код:



forward login(i);
public login(i)
{
new rows, fields;
cache_get_data(rows, fields);
if(rows)
{
cache_get_field_content(0, "password", p_i[i][password], database, MAX_PLAYER_PASSWORD);
p_i[i][level] = cache_get_field_content_int(0, "level");
SpawnPlayer(i);
}
else
{
static const fmt_str[] =
"\
{FFFFFF}Введите пароль!\
";
new string[sizeof(fmt_str) - 2 + MAX_PLAYER_NAME];
format(string, sizeof(string), fmt_str, p_i[i][nick]);
ShowPlayerDialog(i, 2, DIALOG_STYLE_INPUT, "{6FFF00}авторизация", string, "ок", "");
}
return 1;
}

DeimoS
11.04.2017, 17:42
Запрос, который вызывает паблик "login", покажи

f55555
11.04.2017, 18:01
static const fmt_str[] = "SELECT * FROM `accounts` WHERE `nick` = '%e' AND `password` = '%e'";
new string[sizeof(fmt_str) - 2 + MAX_PLAYER_NAME - 2 + MAX_PLAYER_PASSWORD];
format(string, sizeof(string), fmt_str, p_i[playerid][nick], p_i[playerid][password]);
return mysql_function_query(database, string, 1, "login", "i", playerid);

DeimoS
11.04.2017, 18:35
Эмм, а где ты выгружаешь пароль из базы данных до отправки этого запроса и зачем ты выгружаешь его в login повторно?

f55555
11.04.2017, 18:52
Эмм, а где ты выгружаешь пароль из базы данных до отправки этого запроса и зачем ты выгружаешь его в login повторно?

спасибо разобрался