Senhas salvam como 0 -
TTheGustavo - 24.03.2015
Eu fiz esse sistema de registro e quando eu fui testar, as senhas salvavam como 0 e qualquer um poderia entrar com qualquer senha nas contas. Tentei algumas maneiras de resolver mas nгo deu certo e apelei para o Fуrum .
pawn Код:
#include <a_samp>
#include <DOF2>
//Sistema de Login
#define DIALOG_LOGIN 0001
#define DIALOG_REGISTRO 0002
#define DIALOG_CHECK 0003
enum
Info
{
Senha,
Dinheiro
};
new pInfo[MAX_PLAYERS][Info];
new Erro[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
new arquivo[40], Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, 32);
format(arquivo, 40, "Contas/%s.ini", Nome);
if(DOF2_FileExists(arquivo))
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login", "Bem Vindo Novamente.\n Digite Sua Senha Para Efetuar o Login.", "Login", "Sair");
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "Bem Vindo ao Brasil New Start.\n Digite uma Senha Para Efetuar o Registro.\n A Senha Deve Conter Mais de 6 Caracteres.", "Registrar", "Sair");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new arquivo[40], Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, 32);
format(arquivo, 40, "Contas/%s.ini", Nome);
if(DOF2_FileExists(arquivo))
{
pInfo[playerid][Dinheiro] = GetPlayerMoney(playerid);
DOF2_SetInt(arquivo, "Senha", pInfo[playerid][Senha]);
DOF2_SetInt(arquivo, "Dinheiro", pInfo[playerid][Dinheiro]);
DOF2_SaveFile();
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new arquivo[40], Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, 32);
format(arquivo, 40, "Contas/%s.ini", Nome);
if(dialogid == DIALOG_REGISTRO)
{
if(!response)
{
SendClientMessage(playerid, COR_VERMELHO, "Vocк Foi Desconectado Pelo Servidor por Nгo Efetuar o Registro.");
Kick(playerid);
}
if(strlen(inputtext) <= 6)
{
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "Sua Senha Deve Conter Mais de 6 Caracteres.", "Registrar", "Sair");
}
else
{
pInfo[playerid][Senha] = strval(inputtext);
DOF2_CreateFile(arquivo);
DOF2_SetInt(arquivo, "Senha", pInfo[playerid][Senha]);
DOF2_SetInt(arquivo, "Dinheiro", pInfo[playerid][Dinheiro]);
DOF2_SaveFile();
ShowPlayerDialog(playerid, DIALOG_CHECK, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "Para Prosseguir, Confirme sua Senha.", "Confirmar", "Cancelar");
}
}
if(dialogid == DIALOG_CHECK)
{
pInfo[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
if(strval(inputtext) != pInfo[playerid][Senha])
{
DOF2_RemoveFile(arquivo);
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "A Senhas Digitadas Nгo Correspondem.\n Digite Novamente.", "Registrar", "Sair");
}
}
if(dialogid == DIALOG_LOGIN)
{
if(!response)
{
SendClientMessage(playerid, COR_VERMELHO, "Vocк Foi Desconectado Pelo Servidor por Nгo Efetuar o Registro.");
Kick(playerid);
}
if(response)
{
pInfo[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
if(strval(inputtext) == pInfo[playerid][Senha])
{
pInfo[playerid][Dinheiro] = DOF2_GetInt(arquivo, "Dinheiro");
GivePlayerMoney(playerid, pInfo[playerid][Dinheiro]);
SpawnPlayer(playerid);
}
}
if(response)
{
pInfo[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
if(strval(inputtext) != pInfo[playerid][Senha])
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login", "Senha Incorreta. Digite sua Senha Corretamente ou Serб Desconectado", "Login", "Sair");
Erro[playerid]++;
if(Erro[playerid] == 3)
{
SendClientMessage(playerid, COR_VERMELHO, "Vocк Foi Desconectado Pelo Servidor por\n Errar Sua Senha 3 Vezes.");
Kick(playerid);
}
}
}
}
return 1;
}
Ele й muito simples e ainda estб incompleto, estou fazendo por partes e preciso resolver esse probleminha que apareceu.
Agradeзo desde jб.
______
Re: Senhas salvam como 0 -
ipsLuan - 24.03.2015
Mude DOF2_SetInt para DOF2_SetString e veja se o resultado й o esperado.
Re: Senhas salvam como 0 -
TTheGustavo - 24.03.2015
Ao invйs de 0 agora, fical (null)
Re: Senhas salvam como 0 -
SkullFire - 24.03.2015
Veja a soluзгo postada pela Ana(humildadeforever)
https://sampforum.blast.hk/showthread.php?tid=540540
Re: Senhas salvam como 0 - Whoo - 24.03.2015
Vocк usa strlen e dps strval para guardar a senha ... pq ?
Re: Senhas salvam como 0 -
Ever_SH - 24.03.2015
Use da seguinte maneira
DOF2_SetString(
Local do Arquivo, "Senha",
Variavel da Senha);
Re: Senhas salvam como 0 -
n0minal - 24.03.2015
Quote:
Originally Posted by Whoo
Vocк usa strlen e dps strval para guardar a senha ... pq ?
|
Pois й, e nenhuma das duas funзхes foram feitas pra isso.
STRLEN = Lenght of string = tamanho da string
STRVAL = String value = valor numйrico
Re: Senhas salvam como 0 -
TTheGustavo - 24.03.2015
Mesma coisa, vou postar o que eu fiz ...
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
new arquivo[40], Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, 32);
format(arquivo, 40, "Contas/%s.ini", Nome);
if(DOF2_FileExists(arquivo))
{
pInfo[playerid][Dinheiro] = GetPlayerMoney(playerid);
DOF2_SetString(arquivo, "Senha", pInfo[playerid][Senha]);
DOF2_SetInt(arquivo, "Dinheiro", pInfo[playerid][Dinheiro]);
DOF2_SaveFile();
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new arquivo[40], Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, 32);
format(arquivo, 40, "Contas/%s.ini", Nome);
if(dialogid == DIALOG_REGISTRO)
{
if(!response)
{
SendClientMessage(playerid, COR_VERMELHO, "Vocк Foi Desconectado Pelo Servidor por Nгo Efetuar o Registro.");
Kick(playerid);
}
if(strlen(inputtext) <= 6)
{
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "Sua Senha Deve Conter Mais de 6 Caracteres.", "Registrar", "Sair");
}
else
{
pInfo[playerid][Senha] = strval(inputtext);
DOF2_CreateFile(arquivo);
DOF2_SetString(arquivo, "Senha", pInfo[playerid][Senha]);
DOF2_SetInt(arquivo, "Dinheiro", pInfo[playerid][Dinheiro]);
DOF2_SaveFile();
ShowPlayerDialog(playerid, DIALOG_CHECK, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "Para Prosseguir, Confirme sua Senha.", "Confirmar", "Cancelar");
}
}
Re: Senhas salvam como 0 -
Ever_SH - 24.03.2015
Faзa assim:
format(
VariaveldaSenha, 40, "%s", inputtext); //para pegar o que foi digitado
Depois para salvar
DOF2_SetString(
Local do arquivo, "Senha",
Variavel da Senha);
Re: Senhas salvam como 0 -
n0minal - 24.03.2015
Criou o arquivo com DOF2_CreateFile?