06.06.2012, 21:38
Hello,
I have just learned MYSQL and read a lot of tutorials and (samp-wiki), its really good but IDK why it doesn't save my password and when I join with another name I see the LOGIN Dialog,
code:
so pelase if there any thing wrong, not made good, tell me please : ) thank you!
I have just learned MYSQL and read a lot of tutorials and (samp-wiki), its really good but IDK why it doesn't save my password and when I join with another name I see the LOGIN Dialog,
code:
Код:
CheckAccountExists(account[]) { new string[128]; format(string, sizeof(string), "SELECT * FROM Users WHERE Name = '%s'", account); mysql_query(string); mysql_store_result(); new value; value = mysql_num_rows(); mysql_free_result(); return value; } explode(const sSource[], aExplode[][], const sDelimiter[] = " ", iVertices = sizeof aExplode, iLength = sizeof aExplode[]) //this isn't mine! { new iNode, iPointer, iPrevious = -1, iDelimiter = strlen(sDelimiter); while(iNode < iVertices) { iPointer = strfind(sSource, sDelimiter, false, iPointer); if(iPointer == -1) { strmid(aExplode[iNode], sSource, iPrevious, strlen(sSource), iLength); break; } else { strmid(aExplode[iNode], sSource, iPrevious, iPointer, iLength); } iPrevious = (iPointer += iDelimiter); ++iNode; } return iPrevious; } public OnPlayerRegister(playerid, password[]) { if(!AccountExists[playerid]) { ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "Type Down Your Password To Continue(log-in)", "Register","Quit"); } if(strlen(password) < 3) return GameTextForPlayer(playerid, "~r~Your Password Must be Atleast 3", 3000, 3); if(strlen(password) >= 32) return GameTextForPlayer(playerid, "~g~Your Password Is Too Long", 3000, 3); CheckMySQL(); new string[128]; format(string, sizeof(string), "INSERT INTO Users (Name,Password) VALUES ('%s','%s')", UserStats[playerid][Name], UserStats[playerid][Password]); mysql_query(string); AccountExists[playerid] = 1; SendClientMessage(playerid, GREEN, "Your account has been created, please login now!"); OnPlayerLogin(playerid, password); return 1; } public OnPlayerLogin(playerid, password[]) { if(AccountExists[playerid]) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Type Down Your Password To Continue(log-in)", "Log-in","Quit"); CheckMySQL(); new string[128]; format(string, sizeof(string), "SELECT * FROM Users WHERE Name = '%s' AND Password = '%s'", UserStats[playerid][Name], UserStats[playerid][Password]); mysql_query(string); mysql_store_result(); if(!mysql_num_rows()) return GameTextForPlayer(playerid, "~n~~n~~r~Incorrect password!", 3000, 3); new row[128]; new field[4][32]; mysql_fetch_row_format(row, "|"); explode(row, field, "|"); mysql_free_result(); UserStats[playerid][Name] = strval(field[0]); format(UserStats[playerid][Password], 32, "%s", field[1]); UserStats[playerid][Admin] = strval(field[2]); UserStats[playerid][Money] = strval(field[3]); GivePlayerMoney(playerid, UserStats[playerid][Money]); format(string, sizeof(string), "Welcome back %s, you are now logged in!", UserStats[playerid][Name]); SendClientMessage(playerid, GREEN, string); PlayerLogged[playerid] = 1; TogglePlayerControllable(playerid, false); return 1; } SavePlayer(playerid) { if(!PlayerLogged[playerid]) return 0; UserStats[playerid][Money] = GetPlayerMoney(playerid); UserStats[playerid][Admin] = UserStats[playerid][Admin]; CheckMySQL(); new string[256]; format(string, sizeof(string), "UPDATE Users SET Password='%s',Admin='%d',Money='%d' WHERE Name='%s'", UserStats[playerid][Password], UserStats[playerid][Admin], UserStats[playerid][Money], UserStats[playerid][Name]); mysql_query(string); return 1; }