Szerző Téma: Regisztrációs hiba  (Megtekintve 1057 alkalommal)

Regisztrációs hiba
« Dátum: 2011. december 18. - 15:19:03 »
0 Show voters
Sziasztok!
Azt szeretném kérdezni hogy az mitõl lehet, hogy nem írok jelszót, akkor beenged a szerverre, viszont ha beírom azt a jelszót amit megadtam akkor azt írja ki hogy rossz jelszó?
 

if(dialogid==9)
{
if(response)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(fajl, sizeof(fajl),\"karik/%s.ini\", name);
new tmp;
tmp=strlen(inputtext);
if(tmp != dini_Int(fajl, \"Jelszó\")) {
SendClientMessage(playerid, COLOR_RED, \"HIBA: Rossz jelszó\");
ShowPlayerDialog(playerid,9,DIALOG_STYLE_PASSWORD,\"Belépés\",\"Regisztrálva vagy\\nÍrd be a jelszavad\",\"Mehet\",\"\");
return 0;
}
SendClientMessage(playerid,-1,\"Sikeres belépés a szerverre.\");
SpawnPlayer(playerid);
spawnolva[playerid]=true;
vinfo[playerid][vAdmin]=dini_Int(fajl,\"vAdmin\");
GivePlayerMoney(playerid,dini_Int(fajl,\"vPenz\"));
SetPlayerScore(playerid,dini_Int(fajl,\"vPont\"));
}
return 1;
}

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Regisztrációs hiba
« Válasz #1 Dátum: 2011. december 18. - 16:26:21 »
0 Show voters
[pawn]new tmp;
tmp=strlen(inputtext);
if(tmp != dini_Int(fajl, \"Jelszó\"))[/pawn]
hát nem tudom mire jó pontosan ez a \"dini_Int\" függvény, szerintem a \"Jelszó\" után levõ értéket számmál alakítja...vagy talán lekérdezi a jelszó után levõ szöveg hosszát...
de akármelyik is lenne, egyik megoldás sem jó itt jelszó ellenõrzésre...
strlen = szöveghosszát lekérdezi...másik feltételt nem látok, tehát ennyi összehasonlítást találtam
tehát példát írok, hogy szerintem hogy fut le...
Beírt jelszó: 12345
Fájlban levõ jelszó: Pista
feltétel:
[pawn]if(tmp != dini_Int(fajl, \"Jelszó\"))[/pawn]
Ha a \"dini_Int\" függvény az értékbõl csinál számot akkor:
(5 != 0)
Ha a \"dini_Int\" függvény a string hosszát adja vissza akkor:
(5 != 5)
tehát nem strlen-es ellenõrzést ajánlok :) mert ha pl az a pass, hogy \"Pista\" akkor akárki aki 5 karakteres jelszót ír be az betud lépni :)
Ha meg csak számokat adhatnak meg jelszónak akkor strval függvényt ajánlom ( string számmá alakítása )
http://wiki.sa-mp.com/wiki/Strval
Ha meg string összehasonlítást szeretnél alkalmazni ( mint parancsoknál szokták ) akkor strcmp
http://wiki.sa-mp.com/wiki/Strcmp
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Regisztrációs hiba
« Válasz #2 Dátum: 2011. december 18. - 16:53:48 »
0 Show voters
Sajna így se jó.

Regisztrációs hiba
« Válasz #3 Dátum: 2011. december 18. - 17:14:28 »
0 Show voters
[pawn]if(dialogid==8)//reg
{
if(response)//ha Mehet gombra kattint
{
   new name[MAX_PLAYER_NAME];
   GetPlayerName(playerid, name, sizeof(name));
   format(fajl, sizeof(fajl),\"karik/%s.ini\", name);
   GivePlayerMoney(playerid,20000);
   dini_Create(fajl);
   dini_IntSet(fajl, \"bugmentesites\",GetPlayerMoney(playerid));
   dini_Set(fajl,\"Jelszó\",inputtext);
   dini_IntSet(fajl, \"vPenz\", GetPlayerMoney(playerid));
   dini_IntSet(fajl, \"vPont\", GetPlayerScore(playerid));
   ShowPlayerDialog(playerid,9,DIALOG_STYLE_PASSWORD,\"Belépés\",\"Regisztrálva vagy\\nÍrd be a jelszavad\",\"Mehet\",\"\");
   new hehe[128];
   format(hehe,128,\"Neved: %s || Jelszavad: %s \",GetName(playerid),inputtext);
   SendClientMessage(playerid,NARANCS,hehe);
}
else//ha nem a Mehet gombra kattint hanem pl ESC billentyüt nyom ami kilépne a dialogbol
{
   ShowPlayerDialog(playerid,8,DIALOG_STYLE_PASSWORD,\"Regisztráció\",\"Írj be egy jelszót\",\"Mehet\",\"\");
}
return 1;
}
if(dialogid==9)//login
{
if(response)//ha Mehet gombra kattint
{
   new name[MAX_PLAYER_NAME];
   GetPlayerName(playerid, name, sizeof(name));
   format(fajl, sizeof(fajl),\"karik/%s.ini\", name);
   if(strcmp(dini_Get(fajl,\"Jelszó\"),inputtext,false) == 0)//ha  ajelszó és a beirt szöveg megegyezik
   {
      SendClientMessage(playerid,-1,\"Sikeres belépés a szerverre.\");
      SpawnPlayer(playerid);
      spawnolva[playerid]=true;
      vinfo[playerid][vAdmin]=dini_Int(fajl,\"vAdmin\");
      GivePlayerMoney(playerid,dini_Int(fajl,\"vPenz\"));
      SetPlayerScore(playerid,dini_Int(fajl,\"vPont\"));
   }
   else//ha nem
   {
      SendClientMessage(playerid, COLOR_RED, \"HIBA: Rossz jelszó\");
      ShowPlayerDialog(playerid,9,DIALOG_STYLE_PASSWORD,\"Belépés\",\"Regisztrálva vagy\\nÍrd be a jelszavad\",\"Mehet\",\"\");
   }
   return 1;
}
else//ha nem a Mehet gombra kattint hanem pl ESC billentyüt nyom ami kilépne a dialogbol
{
   SendClientMessage(playerid, COLOR_RED, \"HIBA: Rossz jelszó\");
   ShowPlayerDialog(playerid,9,DIALOG_STYLE_PASSWORD,\"Belépés\",\"Regisztrálva vagy\\nÍrd be a jelszavad\",\"Mehet\",\"\");
}
return 1;
}[/pawn]

Regisztrációs hiba
« Válasz #4 Dátum: 2011. december 18. - 17:23:55 »
0 Show voters
E: köszi dávid jó lett!
« Utoljára szerkesztve: 2011. december 18. - 17:39:38 írta kopasz »

Regisztrációs hiba
« Válasz #5 Dátum: 2011. december 18. - 17:39:10 »
+1 Show voters
[pawn]      if(!inputtext[0])
   {
      SendClientMessage(playerid, COLOR_RED, \"HIBA: Nem írtál be jelszót\");
      ShowPlayerDialog(playerid,9,DIALOG_STYLE_PASSWORD,\"Belépés\",\"Regisztrálva vagy\\nÍrd be a jelszavad\",\"Mehet\",\"\");
   }[/pawn]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal