30.12.2015, 01:53
Quote:
PHP код:
WHERE `Nome` = '%s' nao precisas mais disto DB_Escape nas versoes mais recente do samp tens o %q se nao estou em erro. |
porйm eu ainda estou com problema, talvez seja pq eu nгo sei configurar o database, se possнvel pode dar uma olhada no mesmo que foi anexado acima ?, agora o problema й que nгo estб reconhecendo a senha apуs efetuar o cadastro ou login, abaixo estб o sistema adaptado ao meu gamemode atual, alguma coisa errada nele?
PHP код:
stock Autenticar(playerid)
{
new Query[120], DBResult:Result;
format(Query, sizeof(Query), "SELECT * FROM `Usuarios` WHERE `Nome` = '%s'", DB_Escape(PegarNome(playerid)));
Result = db_query(Contas, Query);
if(db_num_rows(Result)) ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_PASSWORD, "[Login]", "Account Status: Registred\nInsert your Password to Login!", "Login", "Cancel");
else ShowPlayerDialog(playerid, D_Registro, DIALOG_STYLE_INPUT, "[Register]", "Account Status: Unregistred\nInsert a Password to Register!", "Register", "Cancel");
db_free_result(Result);
return 1;
}
stock SalvarUsuario(playerid)
{
new Query[200];
GetPlayerPos(playerid, pInfo[playerid][pX], pInfo[playerid][pY], pInfo[playerid][pZ]);
format(Query, sizeof(Query), "UPDATE `Usuarios` WHERE `Nome` = '%s' SET \
Fome = %i, Sede = %i, Vida = %f, Headshots = %i, Murders = %i, Bandits = %i, Reputation = %i, Slots = %i, SlotsUsados = %i, UsandoKPCT = %i, UsandoGPS = %i, X = %f, Y = %f, Z = %f", PegarNome(playerid),
pInfo[playerid][pFome], pInfo[playerid][pSede], pInfo[playerid][pVida], pInfo[playerid][pHeadshots], pInfo[playerid][pMurders], pInfo[playerid][pBandits], pInfo[playerid][pReputation],
pInfo[playerid][pSlot], pInfo[playerid][pSlotUsed], pInfo[playerid][pUsandoKPCT], pInfo[playerid][pUsandoGPS], pInfo[playerid][pX], pInfo[playerid][pY], pInfo[playerid][pZ]);
db_query(Contas, Query);
SaveInventory(playerid);
return 1;
}
stock CarregarUsuario(playerid)
{
new Dados[30], DBResult:Result, Query[120];
format(Query, sizeof(Query), "SELECT * FROM `Usuarios` WHERE `Nome` = '%s'", DB_Escape(PegarNome(playerid)));
Result = db_query(Contas, Query);
db_get_field_assoc(Result,"Fome", Dados, sizeof(Dados)), pInfo[playerid][pFome] = strval(Dados);
db_get_field_assoc(Result,"Sede", Dados, sizeof(Dados)), pInfo[playerid][pSede] = strval(Dados);
db_get_field_assoc(Result,"Vida", Dados, sizeof(Dados)), pInfo[playerid][pVida] = floatstr(Dados);
db_get_field_assoc(Result,"Headshots", Dados, sizeof(Dados)), pInfo[playerid][pHeadshots] = strval(Dados);
db_get_field_assoc(Result,"Murders", Dados, sizeof(Dados)), pInfo[playerid][pMurders] = strval(Dados);
db_get_field_assoc(Result,"Bandits", Dados, sizeof(Dados)), pInfo[playerid][pBandits] = strval(Dados);
db_get_field_assoc(Result,"Reputation", Dados, sizeof(Dados)), pInfo[playerid][pReputation] = strval(Dados);
db_get_field_assoc(Result,"Slots", Dados, sizeof(Dados)), pInfo[playerid][pSlot] = strval(Dados);
db_get_field_assoc(Result,"SlotsUsados", Dados, sizeof(Dados)), pInfo[playerid][pSlotUsed] = strval(Dados);
db_get_field_assoc(Result,"UsandoKPCT", Dados, sizeof(Dados)), pInfo[playerid][pUsandoKPCT] = strval(Dados);
db_get_field_assoc(Result,"UsandoGPS", Dados, sizeof(Dados)), pInfo[playerid][pUsandoGPS] = strval(Dados);
db_get_field_assoc(Result,"X", Dados, sizeof(Dados)), pInfo[playerid][pX] = floatstr(Dados);
db_get_field_assoc(Result,"Y", Dados, sizeof(Dados)), pInfo[playerid][pY] = floatstr(Dados);
db_get_field_assoc(Result,"Z", Dados, sizeof(Dados)), pInfo[playerid][pZ] = floatstr(Dados);
LoadInventory(playerid);
return 1;
}
@edit
PHP код:
if(dialogid == D_Login)
{
if(response)
{
format(Query, sizeof(Query), "SELECT * FROM `Usuarios` WHERE `Nome` = '%s' AND `Senha` = '%s'", DB_Escape(PegarNome(playerid)), DB_Escape(inputtext));
Result = db_query(Contas, Query);
if(db_num_rows(Result))
{
pInfo[playerid][pConectado] = true;
CarregarUsuario(playerid);
SpawnPlayer(playerid);
FomeTimer[playerid] = SetTimerEx("DiminuirFome", 120000, true, "i", playerid);
SedeTimer[playerid] = SetTimerEx("DiminuirSede", 60000, true, "i", playerid);
WeaponTimer[playerid] = SetTimerEx("AtualizarArma", 1000, true, "i", playerid);
LimparChat(playerid, 80);
}
else
{
ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_PASSWORD, "[Login]", "Account Status: Registred\nInsert your Password to Login!", "Login", "Cancel");
SendClientMessage(playerid, -1, "[SERVER]: Invalid Password!, try again! (You have 3 chances before get Kicked).");
Tentativas[playerid]++;
if(Tentativas[playerid] == 3) Kick(playerid);
}
db_free_result(Result);
}
else Kick(playerid);
}
if(dialogid == D_Registro)
{
if(response)
{
if(strlen(inputtext) < 5 || strlen(inputtext) > 10) { ShowPlayerDialog(playerid, D_Registro, DIALOG_STYLE_INPUT, "[Register]", "Your pass must be bigger than 5 and smaller than 10 characters.", "Register", "Cancel"); }
else
{
format(Query, sizeof(Query), "INSERT INTO `Usuarios` (`Nome`, `Senha`) VALUES ('%s','%s')", DB_Escape(PegarNome(playerid)), DB_Escape(inputtext));
db_query(Contas, Query);
ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_PASSWORD, "[Login]", "Your Account has been sucessfully Created!\nInsert your Password to Login.", "Login", "Cancel");
pInfo[playerid][pMorreu] = true;
}
}
}