-
Sziasztok!
Újabb mysql problémám lenne: elkezdtem egy regisztrációs rendszert, minden megy, kivéve a bejelentkezés. A jó jelszóra is azt írja, hogy rossz. Lehet, nagy hülyeség az egész, de ebben a témában még kezdõ vagyok.
[...]
if(!response) Kick(playerid);
new string[128];
format(string,sizeof(string),\"SELECT `password` FROM `users` WHERE `username`=\'%s\'\",pName(playerid));
mysql_query(string);
if(mysql_fetch_int() == strval(inputtext))
{
SendClientMessage(playerid, COLOR_GREEN, \"Sikeresen bejelentkeztél!\");
PlayerInfo[playerid][belepve] = 1;
}
else
{
SendClientMessage(playerid, COLOR_RED, \"Hibás jelszó!\");
PlayerInfo[playerid][belepve] = 0;
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,\"Bejelentkezés\",\"Üdv!\\nKérlek írd be a jelszavad.\",\"Belépés\",\"Kilépés\");
[...]
}
-
A mysql_fetch_int az integerekhez való, nem stringhez. Itt a helyes kód:
if(!response) Kick(playerid);
new string[128];
format(string,sizeof(string),\"SELECT `password` FROM `users` WHERE `username`=\'%s\'\",pName(playerid));
mysql_query(string);
new jelszo[128], line[256];
if(mysql_fetch_row_format(line, \"|\"))
{
sscanf(line, \"p<|>s[128]\", jelszo);
}
if(!strcmp(jelszo, inputtext, true))
{
SendClientMessage(playerid, COLOR_GREEN, \"Sikeresen bejelentkeztél!\");
PlayerInfo[playerid][belepve] = 1;
}
else
{
SendClientMessage(playerid, COLOR_RED, \"Hibás jelszó!\");
PlayerInfo[playerid][belepve] = 0;
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,\"Bejelentkezés\",\"Üdv!\\nKérlek írd be a jelszavad.\",\"Belépés\",\"Kilépés\");
[...]
}
-
A mysql_fetch_int az integerekhez való, nem stringhez. Itt a helyes kód:
if(!response) Kick(playerid);
new string[128];
format(string,sizeof(string),\"SELECT `password` FROM `users` WHERE `username`=\'%s\'\",pName(playerid));
mysql_query(string);
new jelszo[128], line[256];
if(mysql_fetch_row_format(line, \"|\"))
{
sscanf(line, \"p<|>s[128]\", jelszo);
}
if(!strcmp(jelszo, inputtext, true))
{
SendClientMessage(playerid, COLOR_GREEN, \"Sikeresen bejelentkeztél!\");
PlayerInfo[playerid][belepve] = 1;
}
else
{
SendClientMessage(playerid, COLOR_RED, \"Hibás jelszó!\");
PlayerInfo[playerid][belepve] = 0;
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,\"Bejelentkezés\",\"Üdv!\\nKérlek írd be a jelszavad.\",\"Belépés\",\"Kilépés\");
[...]
}
[/quote]
Köszönöm a választ, de már mindig azt írja, hogy \"sikeresen bejelentkeztél\".
-
Nem tudom minek bonyolítod túl darabolgatással...
format(string, sizeof(string), \"SELECT `password` FROM `users` WHERE `username`=\'%s\'\", pName(playerid)); // Megadod a lekérdezést
mysql_query(string); // Lekérdezed az adatot
mysql_store_result(); // Eltárolod az adatot
mysql_fetch_row(string); // Beolvasod a sort
new string2[256]; // Létrehozol egy új változót
format(string2, sizeof(string2), \"%s\", string); // Eltárolod a kapott adatot az új változóba
mysql_free_result(); // Felszabadítod az erõforrást
SendClientMessage(playerid, SZIN, string2); // A lekérdezett adatot késõbb is tudod használni, ugyanakkor fel van szabadítva az erõforrásod más lekérdezésekhez
-
Nem tudom minek bonyolítod túl darabolgatással...
format(string, sizeof(string), \"SELECT `password` FROM `users` WHERE `username`=\'%s\'\", pName(playerid)); // Megadod a lekérdezést
mysql_query(string); // Lekérdezed az adatot
mysql_store_result(); // Eltárolod az adatot
mysql_fetch_row(string); // Beolvasod a sort
new string2[256]; // Létrehozol egy új változót
format(string2, sizeof(string2), \"%s\", string); // Eltárolod a kapott adatot az új változóba
mysql_free_result(); // Felszabadítod az erõforrást
SendClientMessage(playerid, SZIN, string2); // A lekérdezett adatot késõbb is tudod használni, ugyanakkor fel van szabadítva az erõforrásod más lekérdezésekhez
[/quote]
Nagyon köszönöm, ezt meg is értem, és mûködik is! Ment az óriási +!