Duda con INI, se registra aunque pulses 'Salir' -
Orei - 25.03.2015
Hola, tengo un registro por INI y me he dado cuenta de que en el registro por diбlogo, si entro con una cuenta nueva y en vez de poner la contraseсa y registrarme le doy a salir, se registra en la ruta de los archivos y aparece sin la lнnea de contraseсa, evidentemente cuando vuelvo a entrar ya aparece como que estб registrado pero lуgicamente no existe ninguna contraseсa.
Os dejo el case del diбlogo de registro:
Код:
case DIALOG_REGISTER:
{
if (!response) return Kick(playerid);
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, ""WHITE"Registering...",""RED"You have entered an invalid password.\n"WHITE"Type your password below to register a new account.","Register","Quit");
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"Datos del usuario");
INI_WriteInt(File,"clave",udb_hash(inputtext));
INI_WriteInt(File,"dinero",0);
INI_WriteInt(File,"nAdmin",0);
INI_WriteInt(File,"matados",0);
INI_WriteInt(File,"muertes",0);
INI_Close(File);
SetSpawnInfo(playerid, 0, 26, 1722.3063, -1694.1846, 13.5000, 179.9952, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
}
}
Gracias !
Respuesta: Duda con INI, se registra aunque pulses 'Salir' -
OTACON - 25.03.2015
esta incompleto...
PHP код:
if(! /* restricciуn para identificar si esta registrado */ ){
// no esta registrado
// funciуn
}else{
// si esta registrado
// funciуn
if(!strcmp(inputtext, udb_hash(inputtext)){ // comprueba la contraseсa
// contraseсa correcta
// funcion
{else{
// contraseсa incorrecta
// funciуn
}
}
INI_WriteInt esta mal deberia ser INI_WriteString
Respuesta: Duda con INI, se registra aunque pulses 'Salir' -
Zume - 25.03.2015
Quote:
Originally Posted by OTACON
esta incompleto...
INI_WriteInt esta mal deberia ser INI_WriteString
|
Estб bien, el "hash"
adler-32 convierte letras a nъmeros.
Re: Duda con INI, se registra aunque pulses 'Salir' -
SickAttack - 25.03.2015
Es un error logico, estas guardando la informacion del jugador al desconectarse, tienes que declarar una variable nuevo y asignarle
true al registrar o al iniciar session, y luego en el callback que es llamado al desconectarte del servidor pones un si-entonces y si la variable esta en true, entonces guardas la informacion del usuario, de otro modo no se va hacer nada.
Respuesta: Duda con INI, se registra aunque pulses 'Salir' -
PolloLoko - 25.03.2015
No te compliques tanto creando variables, simplemente agrega al desconectar de esta forma, que si el user no se registro al desconectar no guarde nada de el, ya que como no tienes definido, quiza se guarde datos de cualquier user sin que este registrado
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
if(fexist(UserPath(playerid)))//Esta cuenta existe... y se guardara sus datos
{
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"dinero",GetPlayerMoney(playerid));
INI_WriteInt(File,"nAdmin",Variable);
//lo demas....
}
return 1;}
Re: Respuesta: Duda con INI, se registra aunque pulses 'Salir' -
SickAttack - 25.03.2015
Quote:
Originally Posted by PolloLoko
No te compliques tanto creando variables, simplemente agrega al desconectar de esta forma, que si el user no se registro al desconectar no guarde nada de el, ya que como no tienes definido, quiza se guarde datos de cualquier user sin que este registrado
pawn Код:
public OnPlayerDisconnect(playerid, reason) { if(fexist(UserPath(playerid)))//Esta cuenta existe... y se guardara sus datos { new INI:File = INI_Open(UserPath(playerid)); INI_SetTag(File,"data"); INI_WriteInt(File,"dinero",GetPlayerMoney(playerid)); INI_WriteInt(File,"nAdmin",Variable); //lo demas.... } return 1;}
|
Namas es una variable.
Tambien se puede hacer eso, pero usando una variable podras detectar si el usuario ha iniciado session y lo podras usar en varios lugares, por ejemplo: para permisos de chat, para prohibir spawnear si no te has identificado, etc. Aunque, depende de el, el sabra cual quiere usar.