Nos, kész az SQL regisztráció rendszer, de sajnos mikor a 2. ember próbál regisztrálni nem menti el, és csak az 1. dialogot hozza be.
Regisztráció DIALOG:
case DIALOG_REGISZTRACIO:
{
if(!response) return Kick(playerid);
if(strlen(inputtext) <= 5)
{
SFM(playerid, PIROS, \"[HIBA] \"HEX_FEHER\" A jelszavadban minimum 6 karakter legyen. \" , 0);
ShowPlayerDialog(playerid, DIALOG_REGISZTRACIO, DIALOG_STYLE_INPUT, \"\"HEX_ZOLD\"Regisztráció\", \"\"HEX_FEHER\"A te neved nem található meg az adatbázisban.\\nA regisztrációhoz adj meg egy tetszőleges \"HEX_PIROS\"jelszót.\", \"\"HEX_ZOLD\"Tovább\", \"\"HEX_PIROS\"Kilépés\");
}
new query[512], playerip[16];
GetPlayerIp(playerid, playerip, sizeof(playerip));
WP_Hash(JatekosInfo[playerid][pJelszo], 129, inputtext);
mysql_format(kapcsolat, query, sizeof(query), \"INSERT INTO `Felhasznalok` (`Nev`, `Jelszo`, `IP`, `Admin`, `Penz`, `PosX`, `PosY`, `PosZ`, `PosA`) VALUES (\'%e\', \'%e\', \'%e\', 0, 0, %f, %f, %f, %f)\", JatekosNev(playerid), JatekosInfo[playerid][pJelszo], playerip, SPAWN_X, SPAWN_Y, SPAWN_Z, SPAWN_A);
mysql_tquery(kapcsolat, query, \"FelhasznaloRegisztralas\", \"i\", playerid);
}
Csatlakozásnál ellenőrzés:
TogglePlayerSpectating(playerid, false);
new query[128];
mysql_format(kapcsolat, query, sizeof(query), \"SELECT `Jelszo`, `ID` FROM `Felhasznalok` WHERE `Nev` = \'%e\' LIMIT 1\", JatekosNev(playerid));
mysql_tquery(kapcsolat, query, \"FelhasznaloEllenorzes\", \"i\", playerid);
FelhasznaloEllenorzes Stock:
public FelhasznaloEllenorzes(playerid)
{
new rows, fields;
cache_get_data(rows, fields, kapcsolat);
if(rows)
{
cache_get_field_content(0, \"Jelszo\", JatekosInfo[playerid][pJelszo], kapcsolat, 129);
JatekosInfo[playerid][pID] = cache_get_field_content_int(0, \"ID\");
ShowPlayerDialog(playerid, DIALOG_BEJELENTKEZES, DIALOG_STYLE_INPUT, \"\"HEX_ZOLD\"Bejelentkezés\", \"\"HEX_FEHER\"A te neved megtalálható az adatbázisban.\\nA bejelentkezéshez kérlek add meg a \"HEX_PIROS\"jelszavad.\", \"\"HEX_ZOLD\"Tovább\", \"\"HEX_PIROS\"Kilépés\");
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISZTRACIO, DIALOG_STYLE_INPUT, \"\"HEX_ZOLD\"Regisztráció\", \"\"HEX_FEHER\"A te neved nem található meg az adatbázisban.\\nA regisztrációhoz adj meg egy tetszőleges \"HEX_PIROS\"jelszót.\", \"\"HEX_ZOLD\"Tovább\", \"\"HEX_PIROS\"Kilépés\");
}
return true;
}
Felhasználó regisztrálás:
public FelhasznaloRegisztralas(playerid)
{
JatekosInfo[playerid][pID] = cache_insert_id();
printf(\"[REGISZTRÁCIÓ] Új felhasználó regisztrált. Adatbázis ID: [%d]\", JatekosInfo[playerid][pID]);
SFM(playerid, ZOLD, \"[RENDSZER]\"HEX_FEHER\" Kérjük add meg a karaktered nemét\", 0 );
ShowPlayerDialog(playerid, DIALOG_NEM, DIALOG_STYLE_LIST, \"\"HEX_ZOLD\"Nem választás\", \"\"HEX_KEK\"Férfi\\n\"HEX_PIROS\"Nő\", \"\"HEX_ZOLD\"Tovább\", \"\"HEX_PIROS\"Kilépés\");
return true;
}
Tessék itt a kép az adatbázisról:
http://kepfeltoltes.hu/160807/917979951N_vtelen_www.kepfeltoltes.hu_.png[/img]
Nagyobb méretben:
http://kepfeltoltes.hu/view/160807/917979951N_vtelen_www.kepfeltoltes.hu_.pngA MYSQL log:
[20:23:11] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
[20:23:15] [DEBUG] mysql_format - connection: 1, len: 100, format: \"SELECT * FROM `Felhasznalok` WHERE `Nev` = \'%e\' LIMIT 1\"
[20:23:15] [DEBUG] mysql_tquery - connection: 1, query: \"SELECT * FROM `Felhasznalok` WHERE `Nev` = \'Ralph_Young\' LIMIT 1\", callback: \"FelhasznaloBetoltes\", format: \"i\"
[20:23:15] [DEBUG] CMySQLQuery::Execute[FelhasznaloBetoltes] - starting query execution
[20:23:15] [DEBUG] CMySQLQuery::Execute[FelhasznaloBetoltes] - query was successfully executed within 1.213 milliseconds
[20:23:15] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
[20:23:15] [DEBUG] Calling callback \"FelhasznaloBetoltes\"..
[20:23:15] [DEBUG] cache_get_field_content_int - row: 0, field_name: \"Admin\", connection: 1
[20:23:15] [DEBUG] CMySQLResult::GetRowDataByName - row: \'0\', field: \"Admin\", data: \"8\"
[20:23:15] [DEBUG] cache_get_field_content_int - row: 0, field_name: \"Penz\", connection: 1
[20:23:15] [DEBUG] CMySQLResult::GetRowDataByName - row: \'0\', field: \"Penz\", data: \"0\"
[20:23:15] [DEBUG] cache_get_field_content_float - row: 0, field_name: \"PosX\", connection: 1
[20:23:15] [DEBUG] CMySQLResult::GetRowDataByName - row: \'0\', field: \"PosX\", data: \"-2210.95\"
[20:23:15] [DEBUG] cache_get_field_content_float - row: 0, field_name: \"PosY\", connection: 1
[20:23:15] [DEBUG] CMySQLResult::GetRowDataByName - row: \'0\', field: \"PosY\", data: \"-2261.75\"
[20:23:15] [DEBUG] cache_get_field_content_float - row: 0, field_name: \"PosZ\", connection: 1
[20:23:15] [DEBUG] CMySQLResult::GetRowDataByName - row: \'0\', field: \"PosZ\", data: \"30.625\"
[20:23:15] [DEBUG] cache_get_field_content_float - row: 0, field_name: \"PosA\", connection: 1
[20:23:15] [DEBUG] CMySQLResult::GetRowDataByName - row: \'0\', field: \"PosA\", data: \"143.35\"
[20:23:15] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
[21:18:10] [DEBUG] mysql_format - connection: 1, len: 128, format: \"SELECT `Jelszo`, `ID` FROM `Felhasznalok` WHERE `Nev` = \'%e\' LIMIT 1\"
[21:18:10] [DEBUG] mysql_tquery - connection: 1, query: \"SELECT `Jelszo`, `ID` FROM `Felhasznalok` WHERE `Nev` = \'Dominic\", callback: \"FelhasznaloEllenorzes\", format: \"i\"
[21:18:10] [DEBUG] CMySQLQuery::Execute[FelhasznaloEllenorzes] - starting query execution
[21:18:10] [DEBUG] CMySQLQuery::Execute[FelhasznaloEllenorzes] - query was successfully executed within 0.827 milliseconds
[21:18:10] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
[21:18:10] [DEBUG] Calling callback \"FelhasznaloEllenorzes\"..
[21:18:10] [DEBUG] cache_get_data - connection: 1
[21:18:10] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
[21:19:02] [DEBUG] mysql_format - connection: 1, len: 512, format: \"INSERT INTO `Felhasznalok` (`Nev`, `Jelszo`, `IP`, `Admin`, `Penz`, `PosX`, `PosY`, `PosZ`, `PosA`) VALUES (\'%e\', \'%e\', \'%e\', 0,...\"
[21:19:02] [DEBUG] mysql_tquery - connection: 1, query: \"INSERT INTO `Felhasznalok` (`Nev`, `Jelszo`, `IP`, `Admin`, `Pen\", callback: \"FelhasznaloRegisztralas\", format: \"i\"
[21:19:02] [DEBUG] CMySQLQuery::Execute[FelhasznaloRegisztralas] - starting query execution
[21:19:02] [ERROR] CMySQLQuery::Execute[FelhasznaloRegisztralas] - (error #1062) Duplicate entry \'0\' for key \'PRIMARY\'
[21:19:02] [DEBUG] CMySQLQuery::Execute[FelhasznaloRegisztralas] - error will be triggered in OnQueryError
[21:19:08] [DEBUG] mysql_format - connection: 1, len: 512, format: \"UPDATE `Felhasznalok` SET `Nem` = %i WHERE `ID` = %d\"
[21:19:08] [DEBUG] mysql_tquery - connection: 1, query: \"UPDATE `Felhasznalok` SET `Nem` = 0 WHERE `ID` = 0\", callback: \"(null)\", format: \"(null)\"
[21:19:08] [DEBUG] CMySQLQuery::Execute[] - starting query execution
[21:19:08] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 25.510 milliseconds
[21:19:08] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving
[21:19:11] [DEBUG] mysql_format - connection: 1, len: 512, format: \"UPDATE `Felhasznalok` SET `Kor` = %i WHERE `ID` = %d\"
[21:19:11] [DEBUG] mysql_tquery - connection: 1, query: \"UPDATE `Felhasznalok` SET `Kor` = 26 WHERE `ID` = 0\", callback: \"(null)\", format: \"(null)\"
[21:19:11] [DEBUG] CMySQLQuery::Execute[] - starting query execution
[21:19:11] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 24.45 milliseconds
[21:19:11] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving
[21:19:14] [DEBUG] mysql_format - connection: 1, len: 512, format: \"UPDATE `Felhasznalok` SET `Skin` = %i WHERE `ID` = %d\"
[21:19:14] [DEBUG] mysql_tquery - connection: 1, query: \"UPDATE `Felhasznalok` SET `Skin` = 299 WHERE `ID` = 0\", callback: \"(null)\", format: \"(null)\"
[21:19:14] [DEBUG] CMySQLQuery::Execute[] - starting query execution
[21:19:14] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 21.153 milliseconds
[21:19:14] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving
ALTER TABLE `Felhasznalok`
MODIFY COLUMN `ID` int(11) NOT NULL AUTO_INCREMENT FIRST ;
próbáld meg ezzel. Phpmyadmin->SQL beilleszted és menni fog.
amúgy itt van a hiba :3
[21:19:02] [DEBUG] CMySQLQuery::Execute[FelhasznaloRegisztralas] - starting query execution
[21:19:02] [ERROR] CMySQLQuery::Execute[FelhasznaloRegisztralas] - (error #1062) Duplicate entry \'0\' for key \'PRIMARY\'
[21:19:02] [DEBUG] CMySQLQuery::Execute[FelhasznaloRegisztralas] - error will be triggered in OnQueryError