22.11.2011, 19:02
(
Последний раз редактировалось TheBluec0de; 22.11.2011 в 19:54.
)
When i enter the correct password give me a incorrect password why ? the password are hashed with SHA1, the database is in localhost
Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOGO_REGISTRAZIONE) { if(response) { if(!strlen(inputtext) || strlen(inputtext) > 10) { format(Stringa, sizeof(Stringa), "Inserisci una password tra 1-10 caratteri \nBenvenuto %s nel server Italian Las Venturas!\n\n Il tuo account non risulta registrato.\nRegistra un account inserendo la password qui sotto:", GetPlayerNomeEx(playerid)); ShowPlayerDialog(playerid, DIALOGO_REGISTRAZIONE, DIALOG_STYLE_PASSWORD, "Registrazione", Stringa, "Registra", "Cancella"); } else { mysql_real_escape_string(inputtext, EscPassword); format(Query, sizeof(Query), "INSERT INTO Utenti (Nome, Password, Ip, Soldi, Punteggio, Uccisioni, Morti) VALUES('%s', SHA1('%s'), '%s', 0, 0, 0, 0)", GetPlayerNomeEx(playerid), EscPassword, GetPlayerIpEx(playerid)); mysql_query(Query); SendClientMessage(playerid, -1, "SERVER: Registrazione effettuata"); Registrato[playerid] = 1; } } else if(!response) return Kick(playerid); } if(dialogid == DIALOGO_ACCESSO) { if(response) { mysql_real_escape_string(inputtext, EscPassword); format(Query, sizeof(Query), "SELECT * FROM `Utenti` WHERE `Nome` = '%s' AND `Password` = SHA1('%s')", GetPlayerNomeEx(playerid), EscPassword); mysql_query(Query); mysql_store_result(); if(!mysql_num_rows()) { UtenteInfo[playerid][STATO_UTENTE_ACCFALLITI]++; if(UtenteInfo[playerid][STATO_UTENTE_ACCFALLITI] == MAX_ACC_FALLITI) { SendClientMessage(playerid, -1, "SERVER: Hai superato il limite massimo di tentativi per accedere. Sei stato kickato."); Kick(playerid); } format(Stringa, sizeof(Stringa), "Tentativo accesso %d/%d. A %d tentativi verrai kickato \nBentornato %s nel server Italian Las Venturas!\n\n Il tuo account risulta registrato.\nInserisci la password per accedere:", UtenteInfo[playerid][STATO_UTENTE_ACCFALLITI], MAX_ACC_FALLITI, MAX_ACC_FALLITI, GetPlayerNomeEx(playerid)); ShowPlayerDialog(playerid, DIALOGO_ACCESSO, DIALOG_STYLE_PASSWORD, "Accesso", Stringa, "Accedi", "Cancella"); } else { new MySQLStringa[20]; while (mysql_retrieve_row()) { mysql_fetch_field_row(MySQLStringa, "Soldi"); UtenteInfo[playerid][STATO_UTENTE_SOLDI] = strval(MySQLStringa); mysql_fetch_field_row(MySQLStringa, "Punteggio"); SetPlayerScore(playerid, strval(MySQLStringa)); mysql_fetch_field_row(MySQLStringa, "Uccisioni"); UtenteInfo[playerid][STATO_UTENTE_UCCISIONI] = strval(MySQLStringa); mysql_fetch_field_row(MySQLStringa, "Morti"); UtenteInfo[playerid][STATO_UTENTE_MORTI] = strval(MySQLStringa); } mysql_free_result(); SendClientMessage(playerid, -1, "SERVER: Accesso effettuato"); Accesso[playerid] = 1; } mysql_free_result(); } else if(!response) return Kick(playerid); } return 1; }