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;
}