25.09.2015, 11:27
Hello, i have a problem with mysql register part, seems it doesnt save the player account. If i register, then quit and i re-enter, i have to register again. This is mysql_log:
This is the server_log:
And this is the register callback:
OnPlayerConnect:
The stock:
The dialog:
And i checked the db, the account doesnt get created in the "players" table.
Quote:
|
Log("07:19:44","mysql_connect",4,"host: \"*****\", user: \"****\", database: \"****\", password: \"****\", port: 3306, autoreconnect: true",0); Log("07:19:44","CMySQLHandle::Create",4,"creating new connection..",0); Log("07:19:44","CMySQLHandle::CMySQLHandle",4,"con structor called",0); Log("07:19:44","CMySQLHandle::Create",4,"connectio n created with ID = 1",0); Log("07:19:44","CMySQLConnection::Connect",4,"conn ection was successful",0); Log("07:19:44","CMySQLConnection::Connect",4,"auto-reconnect has been enabled",0); Log("07:19:44","CMySQLConnection::Connect",4,"conn ection was successful",0); Log("07:19:44","CMySQLConnection::Connect",4,"auto-reconnect has been enabled",0); Log("07:19:44","mysql_errno",4,"connection: 1",0); Log("07:23:34","mysql_tquery",4,"connection: 0, query: \"SELECT * FROM `Bans` WHERE (`Username` = 'TestAcc' OR `IP` = '93\", callback: \"(null)\", format: \"(null)\"",0); Log("07:23:34",""mysql_tquery"",1,"invalid connection handle (ID = 0)",0); Log("07:23:34","cache_get_row_count",4,"connection : 1",0); Log("07:23:34","cache_get_row_count",2,"no active cache",0); Log("07:23:34","cache_get_row_count",4,"connection : 1",0); Log("07:23:34","cache_get_row_count",2,"no active cache",0); Log("07:23:34","mysql_tquery",4,"connection: 1, query: \"UPDATE ServerStats SET TotalJoins = TotalJoins + 1\", callback: \"(null)\", format: \"(null)\"",0); Log("07:23:34","CMySQLQuery::CMySQLQuery()",4,"con structor called",0); Log("07:23:34","mysql_tquery",4,"scheduling query \"UPDATE ServerStats SET TotalJoins = TotalJoins + 1\"..",0); Log("07:23:34","CMySQLQuery::Execute[()]",4,"starting query execution",1); Log("07:23:34","CMySQLQuery::Execute[()]",4,"query was successful",1); Log("07:23:34","CMySQLQuery::Execute[()]",4,"no callback specified, skipping result saving",1); Log("07:23:34","CMySQLQuery::Execute[()]",4,"data being passed to ProcessCallbacks()",1); Log("07:23:34","CMySQLQuery::~CMySQLQuery()",4,"de constructor called",0); Log("07:23:38","mysql_escape_string",4,"source: \"123456\", connection: 1, max_len: 100",0); Log("07:23:38","mysql_tquery",4,"connection: 0, query: \"INSERT INTO players (Username, Password, IP, RegisterDate) VALUE\", callback: \"(null)\", format: \"(null)\"",0); Log("07:23:38",""mysql_tquery"",1,"invalid connection handle (ID = 0)",0); Log("07:23:38","mysql_tquery",4,"connection: 0, query: \"UPDATE ServerStats SET TotalAccounts = TotalAccounts + 1\", callback: \"(null)\", format: \"(null)\"",0); Log("07:23:38",""mysql_tquery"",1,"invalid connection handle (ID = 0)",0); Log("07:23:38","mysql_format",4,"connection: 1, len: 500, format: \"SELECT `TotalAccounts` FROM `ServerStats`\"",0); Log("07:24:15","mysql_tquery",4,"connection: 0, query: \"SELECT * FROM `Bans` WHERE (`Username` = 'TestAcc' OR `IP` = '93\", callback: \"(null)\", format: \"(null)\"",0); Log("07:24:15",""mysql_tquery"",1,"invalid connection handle (ID = 0)",0); Log("07:24:15","cache_get_row_count",4,"connection : 1",0); Log("07:24:15","cache_get_row_count",2,"no active cache",0); Log("07:24:15","cache_get_row_count",4,"connection : 1",0); Log("07:24:15","cache_get_row_count",2,"no active cache",0); Log("07:24:15","mysql_tquery",4,"connection: 1, query: \"UPDATE ServerStats SET TotalJoins = TotalJoins + 1\", callback: \"(null)\", format: \"(null)\"",0); Log("07:24:15","CMySQLQuery::CMySQLQuery()",4,"con structor called",0); Log("07:24:15","mysql_tquery",4,"scheduling query \"UPDATE ServerStats SET TotalJoins = TotalJoins + 1\"..",0); Log("07:24:15","CMySQLQuery::Execute[()]",4,"starting query execution",1); Log("07:24:15","CMySQLQuery::Execute[()]",4,"query was successful",1); Log("07:24:15","CMySQLQuery::Execute[()]",4,"no callback specified, skipping result saving",1); Log("07:24:15","CMySQLQuery::Execute[()]",4,"data being passed to ProcessCallbacks()",1); Log("07:24:15","CMySQLQuery::~CMySQLQuery()",4,"de constructor called",0); Log("07:24:17","mysql_escape_string",4,"source: \"123456\", connection: 1, max_len: 100",0); Log("07:24:17","mysql_tquery",4,"connection: 0, query: \"INSERT INTO players (Username, Password, IP, RegisterDate) VALUE\", callback: \"(null)\", format: \"(null)\"",0); Log("07:24:17",""mysql_tquery"",1,"invalid connection handle (ID = 0)",0); Log("07:24:17","mysql_tquery",4,"connection: 0, query: \"UPDATE ServerStats SET TotalAccounts = TotalAccounts + 1\", callback: \"(null)\", format: \"(null)\"",0); Log("07:24:17",""mysql_tquery"",1,"invalid connection handle (ID = 0)",0); Log("07:24:17","mysql_format",4,"connection: 1, len: 500, format: \"SELECT `TotalAccounts` FROM `ServerStats`\"",0); |
Quote:
|
---------- Loaded log file: "server_log.txt". ---------- SA-MP Dedicated Server ---------------------- v0.3.7-R2, ©2005-2015 SA-MP Team [07:19:44] [07:19:44] Server Plugins [07:19:44] -------------- [07:19:44] Loading plugin: mysql_static.so [07:19:44] >> plugin.mysql: R33 successfully loaded. [07:19:44] Loaded. [07:19:44] Loading plugin: irc.so [07:19:44] *** IRC Plugin v1.4.6 by Incognito loaded *** [07:19:44] Loaded. [07:19:44] Loading plugin: Whirlpool.so [07:19:44] [07:19:44] ================== [07:19:44] [07:19:44] Whirlpool loaded [07:19:44] [07:19:44] ================== [07:19:44] [07:19:44] Loaded. [07:19:44] Loading plugin: crashdetect.so [07:19:44] CrashDetect v4.15.1 is OK. [07:19:44] Loaded. [07:19:44] Loading plugin: streamer.so [07:19:44] *** Streamer Plugin v2.7.7 by Incognito loaded *** [07:19:44] Loaded. [07:19:44] Loading plugin: sscanf.so [07:19:44] [07:19:44] =============================== [07:19:44] sscanf plugin loaded. [07:19:44] Version: 2.8.1 [07:19:44] © 2012 Alex "******" Cole [07:19:44] =============================== [07:19:44] Loaded. [07:19:44] Loaded 6 plugins. [07:19:44] [07:19:44] Filterscripts [07:19:44] --------------- [07:19:44] Loading filterscript 'sys.amx'... [07:19:44] [07:19:44] [07:19:44] [07:19:44] ======================================= [07:19:44] | | [07:19:44] | YSI version 3.09.0684 | [07:19:44] | By Alex "******" Cole | [07:19:44] | | [07:19:44] ======================================= [07:19:44] [07:19:44] Successfully connected on DB *** [07:19:44] -> Loaded Successfully! [07:19:44] Date: 25/9/2015 - Time: 7:19:44 [07:19:44] __________________________________________________ _ [07:19:44] Loaded 1 filterscripts. [07:19:44] ---------------------------------- [07:19:44] Hot Room Loaded (TDM). [07:19:44] ---------------------------------- [07:19:44] Number of vehicle models: 0 [07:23:32] [connection] ****** requests connection cookie. [07:23:33] [connection] incoming connection: ***** id: 0 [07:23:34] [join] TestAcc has joined the server (0:****) [07:23:34] IsPlayerBanned called. [07:23:50] [part] TestAcc has left the server (0:1) [07:24:13] [connection] ******* requests connection cookie. [07:24:14] [connection] incoming connection: **** id: 0 [07:24:15] [join] TestAcc has joined the server (0:*******) [07:24:15] IsPlayerBanned called. [07:24:19] [part] TestAcc has left the server (0:1) |
OnPlayerConnect:
Код:
]new rows = mysql_num_rows();
if(!rows)
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""White"Please register",""White"Welcome to "Red""SERVER_NAME""White"!\n"White"In order to start playing, you have to register!\n\n"White"Please insert a password below:", "Register", "Cancel");
}
if(rows == 1)
{
new IPP[2][15];
mysql_fetch_field_row(IPP[0],"IPP");
GetPlayerIp(playerid, IPP[1], 15);
if(strlen(IPP[0]) != 0 && !strcmp(IPP[0], IPP[1], true))
{
MySQL_Login(playerid);
}
else if(!strlen(IPP[0]) || strcmp(IPP[0], IPP[1], true))
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, ""White"Please log-in", ""White"Welcome back to "Red""SERVER_NAME""White"!\n"White"In order to start playing, you have to log-in!\n\n"White"Please insert "Red"your"White" password below:", "Login", "Cancel");
IsRegistered[playerid] = 1;
}
}
mysql_free_result();
Код:
stock MySQL_Register(playerid, passwordstring[])
{
new query1[570], pname[24];
new IPP[16];
GetPlayerIp(playerid, IPP, sizeof(IPP));
new Bannedby[20];
format(Bannedby, 20, "Not Banned");
GetPlayerName(playerid, pname, 24);
new buff[129];
WP_Hash(buff, 129, passwordstring);
format(query1, sizeof(query1), "INSERT INTO players (Username, Password, IP, RegisterDate) VALUES('%s', '%s', '%s', '%s')", pname, buff, IPP, InsertTimeStamp());
mysql_function_query(mConnectionHandle, query1, false, "", "");
Logged[playerid] = 1;
new stats[128];
format(stats, sizeof(stats), "UPDATE ServerStats SET TotalAccounts = TotalAccounts + 1");
mysql_function_query(mConnectionHandle, stats, false, "", "");
new echo[130];
new kname[24];
new query[500];
mysql_format(mysql, query, sizeof(query), "SELECT `TotalAccounts` FROM `ServerStats`");
GetPlayerName(playerid, kname, 24);
format(echo,sizeof(echo),"0,3** System: %s (%d) (IP: %s) has registered a new account - Total Registered Players %d",pname,playerid,query);
IRC_GroupSay(groupID, IRC_ACHANNEL, echo);
new string[128];
format(string, sizeof(string), "{F2C80C}* %s (%d) {FFFFFF}has registered a new account. - Total Registered Players: {F2C80C}%d", pname,playerid,query);
SCMTA(-1, string);
new txd[128];
format(txd,sizeof(txd),">> You are now registered to Epic Missions - {F2C80C}Username: %s (%d)",pname,playerid);
SCM(playerid, -1, txd);
return 1;
}
Код:
if(dialogid == DIALOG_REGISTER)
{
if(response)
{
if(CheckInput(inputtext)) return SendClientMessage(playerid, 0x0000ff, "You cannot use this password.");
if(!strlen(inputtext) || strlen(inputtext) > 100)
{
SendClientMessage(playerid,COLOR_RED,"Please enter a password within the length of 1 - 100 characters.");
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""White"Please register",""White"Welcome to "Red""SERVER_NAME""White"!\n"White"In order to start playing, you have to register!\n\n"White"Please insert a password below:", "Register", "Cancel");
}
else if(strlen(inputtext) > 0 && strlen(inputtext) < 100)
{
new escpass[100];
mysql_real_escape_string(inputtext, escpass);
MySQL_Register(playerid, escpass);
}
}
if(!response)
{
SendClientMessage(playerid, COLOR_RED, "** To play you must be registered or logged in.");
KickTimer[playerid] = SetTimerEx("KickPlayer",200,false,"d",playerid);
}
}
if(dialogid == DIALOG_LOGIN)
{
if(!response)
{
SendClientMessage(playerid, COLOR_RED, "** To play you must be registered or logged in.");
KickTimer[playerid] = SetTimerEx("KickPlayer",200,false,"d",playerid);
}
if(response)
{
new pname[24], escapepass[100];
GetPlayerName(playerid, pname, 24);
mysql_real_escape_string(inputtext, escapepass);
new query[217], buff[129];
WP_Hash(buff, 129, inputtext);
format(query, sizeof(query), "SELECT `Username` FROM player WHERE Username = '%s' AND Password = '%s'", pname, buff);
mysql_function_query(mConnectionHandle, query, false, "", "");
mysql_store_result();
new numrows = mysql_num_rows();
if(numrows == 1) MySQL_Login(playerid);
if(!numrows)
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, ""White"Please log-in", ""White"Welcome back to "Red""SERVER_NAME""White"!\n"White"In order to start playing, you have to log-in!\n\n"White"Please insert "Red"your"White" password below:", "Login", "Cancel");
GameTextForPlayer(playerid,"~w~Wrong ~r~password.",2000,6);
}
mysql_free_result();
}
}

