На бласт хаке уже есть подобная тема, но я не понял, что там именно делать нужно.
Есть диалог авторизации, БД и ввод пароля. При вводе пароля у меня пропадает диалог, а в mysql.log пишет это: [ERROR] cache_get_value_name: field 'salt' not found (и 'password').
Сам код, в котором происходит проверка хэша и соли пароля, а также проверка по бд
Что делать, я не понимаю? Уже на другой форум писали, но ответа так и нет :d
я не спал полтора суток, так что не всё могу понять
Есть диалог авторизации, БД и ввод пароля. При вводе пароля у меня пропадает диалог, а в mysql.log пишет это: [ERROR] cache_get_value_name: field 'salt' not found (и 'password').
Сам код, в котором происходит проверка хэша и соли пароля, а также проверка по бд
PHP:
new checkpass[65];
SHA256_PassHash(inputtext, player_info[playerid][SALT], checkpass, 65);
if(strcmp(player_info[playerid][PASSWORD], checkpass, false, 64) == 0)
{
static const fmt_query[] = "SELECT * FROM `users` WHERE `name` = '%s' AND `password` = '%s'";
new query[sizeof(fmt_query)+(-2+MAX_PLAYER_NAME)+(-2+64)];
format(query, sizeof(query), fmt_query, player_info[playerid][NAME], player_info[playerid][PASSWORD]);
mysql_tquery(dbHandle, query, "PlayerLogin", "i", playerid);
}
Что делать, я не понимаю? Уже на другой форум писали, но ответа так и нет :d
PHP:
case DLG_LOG:
{
if(response)
{
if(!strlen(inputtext))
{
ShowLogin(playerid);
}
new checkpass[65];
SHA256_PassHash(inputtext, player_info[playerid][SALT], checkpass, 65);
if(strcmp(player_info[playerid][PASSWORD], checkpass, false, 64) == 0)
{
static const fmt_query[] = "SELECT * FROM `users` WHERE `name` = '%s' AND `password` = '%s'";
new query[sizeof(fmt_query)+(-2+MAX_PLAYER_NAME)+(-2+64)];
format(query, sizeof(query), fmt_query, player_info[playerid][NAME], player_info[playerid][PASSWORD]);
mysql_tquery(dbHandle, query, "PlayerLogin", "i", playerid);
}
else
{
new string[63];
SetPVarInt(playerid, "WrongPassword", GetPVarInt(playerid, "WrongPassword")-1);
if(GetPVarInt(playerid, "WrongPassword") > 0)
{
format(string, sizeof(string), "[Ошибка] {ffffff}Неправильный пароль. У вас осталось %d попыток", GetPVarInt(playerid, "WrongPassword"));
SCM(playerid, COLOR_RED, string);
}
if(GetPVarInt(playerid, "WrongPassword") == 0)
{
SCM(playerid, COLOR_RED, "[Ошибка] {ffffff}Вы исчерпали лимит попыток входа и были кикнуты");
Kick(playerid);
}
ShowLogin(playerid);
}
}
else
{
SCM(playerid, COLOR_WHITE, "{E00D18}[Ошибка] {FFFFFF}Вы отказались от регистрации!");
SCM(playerid, COLOR_WHITE, "Чтобы выйти из игры, откройте чат и введите: \"/q\"");
return Kick(playerid);
}
я не спал полтора суток, так что не всё могу понять