Wysłany: 2013-04-25, 11:26
macias133
Wiek: 37 Na forum: 6149 dni Posty: 13
Piwa : 146
Cze??, mam pewien problem, wczoraj napisa?em rejestracj?/logowanie.
Zapisuje si? wszystko dobrze, lecz nie dzia?a logowanie si?, chod? wpisuj? prawid?owe has?o - zwraca mi komunikat, ?e wpisa?em z?e has?o.
Zapis konta w scriptfiles:
Kod: [Info'o graczu]
Aktywne = true
Haslo = A76E1A2281B9282BBB36B1B4C1C000B6BA79E1449D2BFD11877AEA46DE56154AC04E05E8645B7C694FB52F2326AD4BD1AEDE41AF0E1FC16A5EA2AEB69825FD9
Admin = 0
VIP = 0
Kasa = 0
PktDrift = 0
Kod dialogu Login:
Kod: if(dialogid == DIALOG_LOGIN && response) {
if(!response) return Kick(playerid);
new HashPass[129];
WP_Hash(HashPass, sizeof(HashPass), inputtext);
if(strcmp(HashPass, player_data[playerid][player_pass]) == 0){
INI_ParseFile(Gracz(playerid),"Zaladuj_Dane",.bExtra = true, .extra = playerid);
GivePlayerMoney(playerid, player_data[playerid][player_cash]);
SetPlayerScore(playerid, player_data[playerid][player_driftpoints]);
SCMInfo(playerid, "Zalogowa?e? si? pomy?lnie");
TogglePlayerSpectating(playerid, false);
}else{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,""servname" (Logowanie)","\
Witamy na DriftServer ponownie,\naby si? rozpocz?? rozgrwyk? wpisz has?o poni?ej.","Zaloguj","Wyj?cie");
}
}return 1;
}
Wysłany: 2013-04-25, 14:49
Quis
Wszechwiedzący
Wiek: 31 Na forum: 5146 dni Posty: 464
Nick w MP: Quis
Piwa : 1110
Sprobuj przed warunkiem wklepa?:
Kod: printf("haslo: %s", player_data[playerid][player_pass]);
I zobacz co wy?wietli w konsoli. Mo?e ?le masz wczytane has?o z pliku.
Pozdrawiam
Wysłany: 2013-04-25, 15:08
macias133
Wiek: 37 Na forum: 6149 dni Posty: 13
Piwa : 146
Za?o?y?em nowe konto na serwerze, has?o domy?lne:
Kod: 7D73388F9B889B1E59642AEE80007658A8B3041BC6B5F52CFC5E88C84B04DFF67A74E05EB31280FF609177BB27C6093DF4D41EBFDF5BE8112220F85AE84D0CE
Z log?w:
Kod: 7D73388F9B889B1E59642AEE80007658A8B3041BC6B5F52CFC5E88C84B04DFF67A74E05EB31280FF609177BB27C6093DF4D41EBFDF5BE8112220F85AE84D0CE
Takie same, musi by? w czym? innym bl?d.
Dam ca?y kod skryptu:
Kod:
enum PlayerInfo {
bool:account_active,
player_pass[129],
player_admin,
player_premium,
player_cash,
player_driftpoints,
} new player_data[MAX_PLAYERS][PlayerInfo];
#define USER_PATH_FILE "DriftServer/Konta/%s.ini"
native WP_Hash(buffer[],len,const str[]);
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REG) {
if(!response) return Kick(playerid);
if(!strlen(inputtext))
return ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_PASSWORD,""servname" (Rejestracja)","\
Witaj na serwerze DriftServer,\nto konto NIE jest zarejestrowane,\naby si? zarejestrowa? wpisz has?o poni?ej.\nWpisz has?o poni?ej !","Rejestruj","Wyjd?");
if(strlen(inputtext)<5||strlen(inputtext)>10)
return ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_PASSWORD,""servname" (Rejestracja)","\
Witaj na serwerze DriftServer,\nto konto NIE jest zarejestrowane,\naby si? zarejestrowa? wpisz has?o poni?ej.\nHas?o musi si? sk?ada? z conajmniej 5 znak?w, maksymalna\
ilo?? znak?w to 10.","Rejestruj","Wyjd?");
if(response) {
new INI:file = INI_Open(Gracz(playerid));
INI_SetTag(file,"Info'o graczu");
INI_WriteBool(file,"Aktywne", true);
new hashpass[129];
WP_Hash(hashpass,sizeof(hashpass),inputtext);
INI_WriteString(file,"Haslo",hashpass);
INI_WriteInt(file,"Admin",0);
INI_WriteInt(file,"VIP",0);
INI_WriteInt(file,"Kasa",0);
INI_WriteInt(file,"PktDrift",0);
INI_Close(file);
SCMInfo(playerid, "Zarejestrowale? si? pomy?lnie");
TogglePlayerSpectating(playerid, false);
SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
}
return 1;
}
if(dialogid == DIALOG_LOGIN && response) {
if(!response) return Kick(playerid);
new HashPass[129];
WP_Hash(HashPass, sizeof(HashPass), inputtext);
if(strcmp(HashPass, player_data[playerid][player_pass]) == 0){
INI_ParseFile(Gracz(playerid),"Zaladuj_Dane",.bExtra = true, .extra = playerid);
GivePlayerMoney(playerid, player_data[playerid][player_cash]);
SetPlayerScore(playerid, player_data[playerid][player_driftpoints]);
SCMInfo(playerid, "Zalogowa?e? si? pomy?lnie");
TogglePlayerSpectating(playerid, false);
}else{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,""servname" (Logowanie)","\
Witamy na DriftServer ponownie,\naby si? rozpocz?? rozgrwyk? wpisz has?o poni?ej.","Zaloguj","Wyj?cie");
}
}return 1;
}
stock PlayerName(playerid) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
return pname;
}
stock Gracz(playerid)
{
new PlayerNick[MAX_PLAYER_NAME], string[256];
GetPlayerName(playerid,PlayerNick,sizeof(PlayerNick));
format(string,sizeof(string),USER_PATH_FILE,PlayerNick);
return string;
}
forward Zaladuj_Dane(playerid, name[], value[]);
public Zaladuj_Dane(playerid, name[], value[])
{
INI_Bool("Aktywne", player_data[playerid][account_active]);
INI_String("Haslo", player_data[playerid][player_pass],129);
INI_Int("Admin",player_data[playerid][player_admin]);
INI_Int("VIP",player_data[playerid][player_premium]);
INI_Int("Kasa",player_data[playerid][player_cash]);
INI_Int("PktDrift",player_data[playerid][player_driftpoints]);
return 1;
}
stock SaveAccountData(playerid) {
new INI:file = INI_Open(Gracz(playerid));
INI_SetTag(file,"Info'o graczu");
INI_WriteBool(file,"Aktywne",player_data[playerid][account_active]);
INI_WriteInt(file,"Admin",player_data[playerid][player_admin]);
INI_WriteInt(file,"VIP",player_data[playerid][player_premium]);
INI_WriteInt(file,"Kasa",GetPlayerMoney(playerid));
INI_WriteInt(file,"PktDrift",GetPlayerScore(playerid));
INI_Close(file);
return 1;
}
stock CheckIsAccountExits(playerid) {
if(fexist(Gracz(playerid))) {
INI_ParseFile(Gracz(playerid),"Zaladuj_Dane", .bExtra = true, .extra = playerid);
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,""servname" (Logowanie)","\
Witamy na DriftServer ponownie,\naby si? rozpocz?? rozgrwyk? wpisz has?o poni?ej.","Zaloguj","Wyj?cie");
}else {
ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_PASSWORD,""servname" (Rejestracja)","\
Witaj na serwerze DriftServer,\nto konto NIE jest zarejestrowane,\naby si? zarejestrowa? wpisz has?o poni?ej.","Rejestruj","Wyjd?");
return 1;
}return 1;
}
@Edit
Pr?bowa?em przed chwil? sprawdzi? tym kodem:
Kod: WP_Hash(HashPass, sizeof(HashPass), inputtext);
printf("has?o: %s", HashPass);
Czy has?o jest takie same jakie wpisuje w inpucie, bez skutku.
@DOWN
Musia?em si? pomyli?, po tym jak to przerabia?em pod poszczeg?lne funkcje.
Og?lnie usuni?cie returna nic nie zmieni, sprawdza?em przed chwil?.
@Edit2
Spr?bowa?em zmieni? szyfrowanie z Whirlpoola na MD5, tak?e nie odczytuje.
Mo?liwe, ?e y_ini nie dzia?a kompatybilnie pod 0.3x, wcze?niej rejestracja dzia?a?a, chyba b?de zmuszony przej?? na DOF2/SQLite lub MySQL.
Ostatnio zmieniony przez macias133 2013-04-26, 16:57, w całości zmieniany 5 razy
Wysłany: 2013-04-25, 15:15
B!4CK
Never give UP!
Wiek: 32 Na forum: 5809 dni Posty: 1047
Nick w MP: John
Piwa : 1891
Kod:
stock CheckIsAccountExits(playerid) {
if(fexist(Gracz(playerid))) {
INI_ParseFile(Gracz(playerid),"Zaladuj_Dane", .bExtra = true, .extra = playerid);
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,""servname" (Logowanie)","\
Witamy na DriftServer ponownie,\naby si? rozpocz?? rozgrwyk? wpisz has?o poni?ej.","Zaloguj","Wyj?cie");
}else {
ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_PASSWORD,""servname" (Rejestracja)","\
Witaj na serwerze DriftServer,\nto konto NIE jest zarejestrowane,\naby si? zarejestrowa? wpisz has?o poni?ej.","Rejestruj","Wyjd?");
return 1;
}return 1;
}
Podw?jny return ?
Podpis
Cześć
[you]
!
Projekt, który poruszy scenę platformy SA:MP!
Tagi: logowanie :: nie :: wykrywa :: hasła.
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: