2021-06-27, 02:48 PM
Hello i need help with password validation, so if registered user types wrong password more than 3 times to login, it should kick the user?
PHP Code:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == REGISTER_DIALOG)
{
if(response)
{
if(strlen(inputtext) < 3 || strlen(inputtext) > 24)
{
SendClientMessage(playerid, -1, "SERVER: Your password must be from 3-24 characters.");
return ShowPlayerDialog(playerid, REGISTER_DIALOG, DIALOG_STYLE_PASSWORD, "{FFFFFF}Register Account", "{FFFFFF}Please enter a password below to register an account:", "Enter", "Leave");
}
bcrypt_hash(playerid, "OnPlayerRegister", inputtext, 12);
return 1;
}
else
{
Kick(playerid);
}
}
else if(dialogid == LOGIN_DIALOG)
{
if(response)
{
new query[256], field[64];
format(query, sizeof(query), "SELECT `PASS` FROM `USERS` WHERE `NAME` = '%s' COLLATE NOCASE", DB_Escape(ReturnName(playerid)));
database_result = db_query(server_database, query);
if(db_num_rows(database_result))
{
db_get_field_assoc(database_result, "PASS", field, sizeof(field));
bcrypt_verify(playerid, "OnPlayerLogin", inputtext, field);
}
return 1;
}
else
{
Kick(playerid);
}
}
return 1;
}