Ayuda! -
JeffreyG - 23.08.2014
Pongo bien mi contraseсa y me tira server closed the conecction.
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new string[256];
new pName[24], Query[256]; GetPlayerName(playerid, pName, 24);
switch(dialogid)
{
case LOGIN:
{
if(!response)
{
Kick(playerid);
}
if(strcmp(PlayerInfo[playerid][pPassword], inputtext, true, 128) == 0)
{
format(Query, sizeof(Query), "SELECT * FROM `usuarios` WHERE `Nombre` = '%s'", pName);
mysql_function_query(Conecction, Query, true, "OnQueryFinish", "ii", 1, playerid);
SetSpawnInfo(playerid,0,0,PlayerInfo[playerid][pPosx], PlayerInfo[playerid][pPosy], PlayerInfo[playerid][pPosz],0,0,0,0,0,0,0);
SetPlayerHealth(playerid, PlayerInfo[playerid][pVida]);
SetPlayerArmour(playerid, PlayerInfo[playerid][pChaleco]);
SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
SpawnPlayer(playerid);
}
else
{
SendClientMessage(playerid, -1, "CONTRASEСA INCORRECTA");
Kick(playerid);
}
}
Respuesta: Ayuda! -
!R1Ch@rD! - 23.08.2014
porque tienes el!!
seria por eso?? ya que al poner la contra te estaria kickeando?? XD
Re: Ayuda! -
aoEXE - 23.08.2014
Coloca '!" Antes de strcmp aver...
pawn Код:
if(!strcmp(PlayerInfo[playerid][pPassword], inputtext, true, 128) == 0)
Respuesta: Ayuda! -
[J]ulian - 23.08.2014
! & == 0 son lo mismo.
Quizбs tenes las contraseсas en la base de datos crifada. Por lo que para que se valide el "inputtext" lo deberнas crifar tambiйn.
PD: Creo que te pueden hacer inyecciуn SQL con ese cуdigo que has puesto.
Re: Ayuda! -
theLegion - 23.08.2014
No es nada de lo anterior.
No te da el tiempo de mostrar el mensaje. Usa lo siguiente:
pawn Код:
// Cuando quieras llamarla
SetTimerEx("TimeKick",1000,false,"i",playerid); // 1000 = 1 segundo. Ajustalo como quieras
// Debajo del codigo
forward TimeKick(playerid);
public TimeKick(playerid)
{
Kick(playerid);
return 1;
}
EDIT: Usa la funcion despues de mostrarle el mensaje de contrasena incorrecta.
Presiento que estas usando el tutorial de JustBored, que cuando yo probe a ver como quedaba me ocurrio el mismo problema.
Re: Ayuda! -
aoEXE - 23.08.2014
Quote:
Originally Posted by theLegion
No es nada de lo anterior.
No te da el tiempo de mostrar el mensaje. Usa lo siguiente:
pawn Код:
// Cuando quieras llamarla SetTimerEx("TimeKick",1000,false,"i",playerid); // 1000 = 1 segundo. Ajustalo como quieras
// Debajo del codigo forward TimeKick(playerid); public TimeKick(playerid) { Kick(playerid); return 1; }
EDIT: Usa la funcion despues de mostrarle el mensaje de contrasena incorrecta.
Presiento que estas usando el tutorial de JustBored, que cuando yo probe a ver como quedaba me ocurrio el mismo problema.
|
EL DICE QUE PONE BIEN LA CONTRASEСA Y LO KICKEA, NADA QUE VER LO QUEE DICES...?
Respuesta: Ayuda! -
adri1 - 23.08.2014
Asegъrate de que se guarda y se carga antes de mostrar el diбlogo, usa un print a ver que sale, tambiйn puede ser lo que te dijo Julian.
Respuesta: Ayuda! -
DesingMyCry - 23.08.2014
pawn Код:
PlayerInfo[playerid][pPassword]
Esa variable no guarda la contraseсa correctamente.
Respuesta: Ayuda! -
JeffreyG - 24.08.2014
Quote:
Originally Posted by [J]ulian
! & == 0 son lo mismo.
Quizбs tenes las contraseсas en la base de datos cifrada. Por lo que para que se valide el "inputtext" lo deberнas cifrar tambiйn.
PD: Creo que te pueden hacer inyecciуn SQL con ese cуdigo que has puesto.
|
No entiendo bien, їcуmo que cifrada?
їY quй es una inyecciуn SQL? no tengo idea de mysql, reciйn estoy aprendiendo.
Respuesta: Ayuda! -
JeffreyG - 24.08.2014
Ayudenme plz.