[Ajuda] registro salvar qualquer caractere
#1

Preciso de ajuda pra fazer esse sistema de login salvar qualquer caractere e nгo sу numeros, rodei o forum e nгo achei nada que pudesse me ajudar.

pawn Код:
#include <a_samp>
#include <a_mysql>

#define host      "localhost"
#define usuario   "root"
#define database  "teste"
#define senha     "" // No caso estou usando wamp e nгo precisa de senha :P

#define DIALOG_REGISTRO 1
#define DIALOG_LOGIN 2

#define KickZ(%0) SetTimerEx("KickP", 500, false, "i", %0)

forward KickP(playerid);
forward KickP2(playerid);

enum PlayerD
{
    ID,
    Senha,
    Dinheiro,
    Nivel,
    Logado
}
new Player[MAX_PLAYERS][PlayerD];

main()
{
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
}

new MySQL:Conexao;
new query[250];

public OnGameModeInit()
{
    Conexao = mysql_connect(host, usuario, senha, database);
    if(mysql_errno() != 0) print("Nao foi possivel conectar na database MySQL"), SendRconCommand("exit");
    else print("Conectado com sucesso na database MySQL");
    query[0] = EOS;
    strcat(query, "CREATE TABLE IF NOT EXISTS usuarios(ID int AUTO_INCREMENT PRIMARY KEY, Nick varchar(20) NOT NULL,Senha int(20) NOT NULL,Dinheiro int NOT NULL DEFAULT 5000, Nivel int NOT NULL DEFAULT 1)");
    mysql_query(Conexao, query, false);
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerConnect(playerid)
{
    new row;
    format(query, sizeof(query), "SELECT * FROM usuarios WHERE Nick='%s' LIMIT 1", PlayerName(playerid));
    mysql_query(Conexao, query, true);
    cache_get_row_count(row);
    cache_get_value_name_int(0, "Senha", Player[playerid][Senha]);
    if(row > 0)
    {
        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login no servidor", "Vocк й registrado, digite sua senha abaixo", "Logar", "Sair");
    }
    else
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro no servidor", "Vocк nгo й registrado, digite uma senha abaixo", "Registrar", "Sair");
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    if(Player[playerid][Logado]) SalvarConta(playerid);
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case DIALOG_REGISTRO:
        {
            if(!response)
            {
                KickZ(playerid);
            }
            if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
            {
                SendClientMessage(playerid, -1, "Digite uma senha de mais de 4 caracteres e menos de 20");
                ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro no servidor", "Vocк nгo й registrado, digite uma senha abaixo", "Registrar", "Sair");
                return 1;
            }
            if(!strval(inputtext))
            {
                ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro no servidor", "Vocк nгo й registrado, digite uma senha abaixo", "Registrar", "Sair");
                SendClientMessage(playerid, -1, "Digite apenas numeros");
                return 1;
            }
            CriarConta(playerid, inputtext);
            SetSpawnInfo( playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0 );
            SpawnPlayer(playerid);
        }
        case DIALOG_LOGIN:
        {
            if(!response)
            {
                KickZ(playerid);
            }
            if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
            {
                SendClientMessage(playerid, -1, "Digite uma senha de mais de 4 caracteres e menos de 20");
                ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login no servidor", "Vocк й registrado, digite sua senha abaixo", "Logar", "Sair");
                return 1;
            }
            if(strval(inputtext) == Player[playerid][Senha])
            {
                SendClientMessage(playerid, -1, "Logado com sucesso");
                CarregarConta(playerid);
                SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0 );
                SpawnPlayer(playerid);
            }
            else
            {
                SendClientMessage(playerid, -1, "Senha incorreta");
                ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login no servidor", "Vocк й registrado, digite sua senha abaixo", "Logar", "Sair");
                return 1;
            }
        }
    }
    return 1;
}

PlayerName(playerid)
{
    new nome[24];
    GetPlayerName(playerid, nome, 24);
    return nome;
}

CriarConta(playerid, senhaz[])
{
    query[0] = EOS;
    format(query, sizeof(query), "INSERT INTO usuarios(Nick, Senha) VALUES ('%s', '%s')", PlayerName(playerid), senhaz);
    mysql_query(Conexao, query, true);
    SendClientMessage(playerid, -1, "Conta criada com sucesso na database MySQL");
    CarregarConta(playerid);
    return 1;
}

SalvarConta(playerid)
{
    if(Player[playerid][Logado] == 0) return 0;
    format(query, sizeof(query), "SELECT * FROM usuarios WHERE Nick='%s'", PlayerName(playerid));
    mysql_query(Conexao,query,true);
    format(query, sizeof(query), "UPDATE usuarios SET Nick='%s', Nivel=%d, Dinheiro=%d WHERE ID=%d", PlayerName(playerid), GetPlayerScore(playerid), GetPlayerMoney(playerid), Player[playerid][ID]);
    mysql_query(Conexao, query, false);
    return 1;
}

CarregarConta(playerid)
{
    format(query, sizeof(query), "SELECT * FROM usuarios WHERE Nick='%s'", PlayerName(playerid));
    mysql_query(Conexao,query,true);

    cache_get_value_name_int(0, "ID", Player[playerid][ID]);
    cache_get_value_name_int(0, "Dinheiro", Player[playerid][Dinheiro]);
    cache_get_value_name_int(0, "Nivel", Player[playerid][Nivel]);

    SetPlayerScore(playerid, Player[playerid][Nivel]);
    GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
    Player[playerid][Logado] = 1;
    SendClientMessage(playerid, -1, "Dados da conta foram carregados na database MySQL carregado");
    return 1;
}

public KickP(playerid)
{
    SetTimerEx("KickP2", 1, false, "i", playerid);
    return 1;
}

public KickP2(playerid)
{
    Kick(playerid);
    return 1;
}
Reply
#2

Apague essa verificaзгo

PHP код:
if(!strval(inputtext)) { ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_PASSWORD"Registro no servidor""Vocк nгo й registrado, digite uma senha abaixo""Registrar""Sair"); SendClientMessage(playerid, -1"Digite apenas numeros"); return 1; } 
O dono desse sistema fez essa if para ver se a pessoa digitou letras se sim retornar a mensagem de erro basta apagar

Quote:

rodei o forum e nгo achei nada que pudesse me ajudar.

As vezes uma lida rapida no cуdigo jб basta.
Reply
#3

Quote:
Originally Posted by C4rtm4n
Посмотреть сообщение
Apague essa verificaзгo

PHP код:
if(!strval(inputtext)) { ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_PASSWORD"Registro no servidor""Vocк nгo й registrado, digite uma senha abaixo""Registrar""Sair"); SendClientMessage(playerid, -1"Digite apenas numeros"); return 1; } 
O dono desse sistema fez essa if para ver se a pessoa digitou letras se sim retornar a mensagem de erro basta apagar



As vezes uma lida rapida no cуdigo jб basta.
eu jб havia feito isso, sу que a conta nгo estava mais salvando
Reply
#4

Quote:
Originally Posted by Misael
Посмотреть сообщение
eu jб havia feito isso, sу que a conta nгo estava mais salvando
Olhe a sua stock salvarconta o erro deve estar nela pois essa if so verifica numeros mais nada entгo ela n interfere em nada de salvamento e ve se tu ta usando string na hora de salvar a password. Pois pode estar la usando um "Int"
Reply
#5

alterei
pawn Код:
[COLOR="Red"]cache_get_value_name_int[/COLOR](0, "Senha", Player[playerid][Senha]);
pra isso

pawn Код:
[COLOR="red"]cache_get_value_name[/COLOR](0, "Senha", Player[playerid][Senha]);
na criaзгo da tabela a senha estava em inteiro e mudei pra varchar

ele atй cria a tabela mas nгo salva a conta.

PHP код:
stock CriarConta(playeridsenhaz[])
{
    
query[0] = EOS;
    
format(querysizeof(query), "INSERT INTO usuarios(Nick, Senha) VALUES ('%s', '%s')"PlayerName(playerid), senhaz);
    
mysql_query(Conexaoquerytrue);
    
SendClientMessage(playerid, -1"Conta criada com sucesso na database MySQL");
    
CarregarConta(playerid);
    return 
1;
}
stock SalvarConta(playerid)
{
    if(
Player[playerid][Logado] == 0) return 0;
    
format(querysizeof(query), "SELECT * FROM usuarios WHERE Nick='%s'"PlayerName(playerid));
    
mysql_query(Conexao,query,true);
    
format(querysizeof(query), "UPDATE usuarios SET Nick='%s', Nivel=%d, Dinheiro=%d WHERE ID=%d"PlayerName(playerid), GetPlayerScore(playerid), GetPlayerMoney(playerid), Player[playerid][ID]);
    
mysql_query(Conexaoqueryfalse);
    return 
1;
}
stock CarregarConta(playerid)
{
    
format(querysizeof(query), "SELECT * FROM usuarios WHERE Nick='%s'"PlayerName(playerid));
    
mysql_query(Conexao,query,true);
    
cache_get_value_name_int(0"ID"Player[playerid][ID]);
    
cache_get_value_name_int(0"Dinheiro"Player[playerid][Dinheiro]);
    
cache_get_value_name_int(0"Nivel"Player[playerid][Nivel]);
    
SetPlayerScore(playeridPlayer[playerid][Nivel]);
    
GivePlayerMoney(playeridPlayer[playerid][Dinheiro]);
    
Player[playerid][Logado] = 1;
    
SendClientMessage(playerid, -1"Dados da conta foram carregados na database MySQL carregado");
    return 
1;

Reply
#6

Quote:
Originally Posted by Misael
Посмотреть сообщение
alterei
pawn Код:
[COLOR="Red"]cache_get_value_name_int[/COLOR](0, "Senha", Player[playerid][Senha]);
pra isso

pawn Код:
[COLOR="red"]cache_get_value_name[/COLOR](0, "Senha", Player[playerid][Senha]);
na criaзгo da tabela a senha estava em inteiro e mudei pra varchar

ele atй cria a tabela mas nгo salva a conta.

PHP код:
stock CriarConta(playeridsenhaz[])
{
    
query[0] = EOS;
    
format(querysizeof(query), "INSERT INTO usuarios(Nick, Senha) VALUES ('%s', '%s')"PlayerName(playerid), senhaz);
    
mysql_query(Conexaoquerytrue);
    
SendClientMessage(playerid, -1"Conta criada com sucesso na database MySQL");
    
CarregarConta(playerid);
    return 
1;
}
stock SalvarConta(playerid)
{
    if(
Player[playerid][Logado] == 0) return 0;
    
format(querysizeof(query), "SELECT * FROM usuarios WHERE Nick='%s'"PlayerName(playerid));
    
mysql_query(Conexao,query,true);
    
format(querysizeof(query), "UPDATE usuarios SET Nick='%s', Nivel=%d, Dinheiro=%d WHERE ID=%d"PlayerName(playerid), GetPlayerScore(playerid), GetPlayerMoney(playerid), Player[playerid][ID]);
    
mysql_query(Conexaoqueryfalse);
    return 
1;
}
stock CarregarConta(playerid)
{
    
format(querysizeof(query), "SELECT * FROM usuarios WHERE Nick='%s'"PlayerName(playerid));
    
mysql_query(Conexao,query,true);
    
cache_get_value_name_int(0"ID"Player[playerid][ID]);
    
cache_get_value_name_int(0"Dinheiro"Player[playerid][Dinheiro]);
    
cache_get_value_name_int(0"Nivel"Player[playerid][Nivel]);
    
SetPlayerScore(playeridPlayer[playerid][Nivel]);
    
GivePlayerMoney(playeridPlayer[playerid][Dinheiro]);
    
Player[playerid][Logado] = 1;
    
SendClientMessage(playerid, -1"Dados da conta foram carregados na database MySQL carregado");
    return 
1;

Recomendo ver isso https://sampforum.blast.hk/showthread.php?tid=355058
Reply
#7

procure por DIALOG_REGISTRO, e me manda aqui
Reply
#8

Quote:
Originally Posted by Coringa_Vilao
Посмотреть сообщение
procure por DIALOG_REGISTRO, e me manda aqui
Й cego ?

Ele mandou o sistema de registro completo no topico olha la.
Reply
#9

Quote:
Originally Posted by C4rtm4n
Посмотреть сообщение
Й cego ?

Ele mandou o sistema de registro completo no topico olha la.
Pra que flood ?

------------------------------------------------------------------------------

quando for criar a tabela cria ela em "text"

amigo tente isso: http://forum.sa-mp.com/showpost.php?...3&postcount=10
Reply
#10

Quote:
Originally Posted by Coringa_Vilao
Посмотреть сообщение
Pra que flood ?

------------------------------------------------------------------------------

quando for criar a tabela cria ela em "text"

amigo tente isso: http://forum.sa-mp.com/showpost.php?...3&postcount=10
Que flood?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)