Wise
06.02.2016, 17:04
Доброго времени суток.
В общем проблема такая: Игрок может поменять в игре свой пароль при помощи команды /setpass.
if(!strcmp(cmdtext, "/setpass", true))
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Изменение пароля", "Введите новый пароль:", "Изменить", "Отмена");
return 1;
}
Пароль в базе данных не сохраняется, так как обновлять его после каждого выхода из игры - неудачная мысль, ну или скорее глупая.
Поэтому, мы обновляем пароль сразу после изменения.
if(dialogid == 1)
{
if(response)
{
if(!strlen(inputtext)) return SendClientMessage(playerid, 0xBF0000FF, "Вы ничего не ввели.");
else if(strlen(inputtext) < 6 || strlen(inputtext) > 20) return SendClientMessage(playerid, 0xBF0000FF, "Пароль не должен содержать менее 6 символов и более 20 символов. ");
new tsql[100];
format(tsql, sizeof(tsql), "UPDATE `accounts` SET `Password` = '%s' WHERE `Nickname` = '%s'", inputtext, nick(playerid));
mysql_function_query(сonnect_base, tsql, false, "", "");
Info[playerid][Password] = strlen(inputtext);
SendClientMessage(playerid, 0xFFFFFFFF, "Вы изменили пароль.");
printf("Пароль: %s", inputtext);
return 1;
}
else return 1;
}
Все проверки работают. В базе новый пароль обновляется успешно.
Но в логах отображается старый пароль. Я пытался использовать strins, но ничего не получилось.
При загрузке аккаунта - всё отображается нормально. А если смотреть по логам, то нет.
В общем проблема такая: Игрок может поменять в игре свой пароль при помощи команды /setpass.
if(!strcmp(cmdtext, "/setpass", true))
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Изменение пароля", "Введите новый пароль:", "Изменить", "Отмена");
return 1;
}
Пароль в базе данных не сохраняется, так как обновлять его после каждого выхода из игры - неудачная мысль, ну или скорее глупая.
Поэтому, мы обновляем пароль сразу после изменения.
if(dialogid == 1)
{
if(response)
{
if(!strlen(inputtext)) return SendClientMessage(playerid, 0xBF0000FF, "Вы ничего не ввели.");
else if(strlen(inputtext) < 6 || strlen(inputtext) > 20) return SendClientMessage(playerid, 0xBF0000FF, "Пароль не должен содержать менее 6 символов и более 20 символов. ");
new tsql[100];
format(tsql, sizeof(tsql), "UPDATE `accounts` SET `Password` = '%s' WHERE `Nickname` = '%s'", inputtext, nick(playerid));
mysql_function_query(сonnect_base, tsql, false, "", "");
Info[playerid][Password] = strlen(inputtext);
SendClientMessage(playerid, 0xFFFFFFFF, "Вы изменили пароль.");
printf("Пароль: %s", inputtext);
return 1;
}
else return 1;
}
Все проверки работают. В базе новый пароль обновляется успешно.
Но в логах отображается старый пароль. Я пытался использовать strins, но ничего не получилось.
При загрузке аккаунта - всё отображается нормально. А если смотреть по логам, то нет.