.Doctor Posted February 4, 2019 Posted February 4, 2019 Boa noite clã, bom eu tenho um painel de login funcional com MySql... porem quando um player cria uma conta no site e eu tenho algum script que necessite que a conta estaja na acl ela não funciona nem mesmo com admins, então teria algum modo de fazer as contas mysql funcionarem com a ACL? help ae
Other Languages Moderators androksi Posted February 4, 2019 Other Languages Moderators Posted February 4, 2019 Provavelmente, na função de login do seu painel, não há o mais importante, que é a função logIn. Quando o jogador se registra no site, você deverá fazer uma call para o seu servidor, adicionando a conta no servidor e não apenas no MySQL. Caso ainda tenha dúvidas, poste o código apenas da parte onde é feito o login da conta. 1
.Doctor Posted February 4, 2019 Author Posted February 4, 2019 6 hours ago, asrzk said: Provavelmente, na função de login do seu painel, não há o mais importante, que é a função logIn. Quando o jogador se registra no site, você deverá fazer uma call para o seu servidor, adicionando a conta no servidor e não apenas no MySQL. Caso ainda tenha dúvidas, poste o código apenas da parte onde é feito o login da conta. function PlayerLogin(username,password) qh = dbQuery(banco, "SELECT * FROM accounts WHERE BINARY username=? and password=?", username, password) result , numrows, errmsg = dbPoll (qh, -1) local row = result[1] if row then triggerClientEvent(client, "login.success", client) local account = getAccount(username, password) if (account ~= false) then logIn(client, getAccount(username), password) else end setElementData(client, "isPlayedLoggedIn", true) setElementData(client, "getPlayerUsername", username) else outputChatBox("Atenção: Você digitou os dados errados.", client) end end addEvent("onRequestLogin",true) addEventHandler("onRequestLogin",getRootElement(),PlayerLogin) Ok, No Caso a função "Login" a conta precisa estar criada no servidor? ou ela ira usar os dados do mysql via call?
Other Languages Moderators androksi Posted February 4, 2019 Other Languages Moderators Posted February 4, 2019 1 hour ago, .Doctor said: function PlayerLogin(username,password) qh = dbQuery(banco, "SELECT * FROM accounts WHERE BINARY username=? and password=?", username, password) result , numrows, errmsg = dbPoll (qh, -1) local row = result[1] if row then triggerClientEvent(client, "login.success", client) local account = getAccount(username, password) if (account ~= false) then logIn(client, getAccount(username), password) else end setElementData(client, "isPlayedLoggedIn", true) setElementData(client, "getPlayerUsername", username) else outputChatBox("Atenção: Você digitou os dados errados.", client) end end addEvent("onRequestLogin",true) addEventHandler("onRequestLogin",getRootElement(),PlayerLogin) Ok, No Caso a função "Login" a conta precisa estar criada no servidor? ou ela ira usar os dados do mysql via call? Sim, é necessário que a conta esteja criada no servidor para que a função logIn funcione, caso contrário ela nem é executada. Quando alguém cria uma conta no site, essa conta, juntamente com o usuário e senha, são registrados também em seu servidor ou não?
.Doctor Posted February 4, 2019 Author Posted February 4, 2019 25 minutes ago, asrzk said: Sim, é necessário que a conta esteja criada no servidor para que a função logIn funcione, caso contrário ela nem é executada. Quando alguém cria uma conta no site, essa conta, juntamente com o usuário e senha, são registrados também em seu servidor ou não? Não, apenas registrados no banco mysql
Other Languages Moderators androksi Posted February 4, 2019 Other Languages Moderators Posted February 4, 2019 addEvent( 'onRequestLogin', true ); addEventHandler( 'onRequestLogin', getRootElement( ), function( username, password ) qh = dbQuery( banco, 'SELECT * FROM accounts WHERE BINARY username = ? AND password = ?', username, password ); result, numrows, errmsg = dbPoll( qh, -1 ); local row = result[ 1 ]; if row then triggerClientEvent( client, 'login.success', client ); local account = getAccount( username, password ); if ( not account ) then local newAccount = addAccount( username, password ); if ( newAccount ) then logIn( client, getAccount( username ), password ); end else logIn( client, account, password ); end setElementData( client, 'isPlayedLoggedIn', true ); setElementData( client, 'getPlayerUsername', username ); else outputChatBox( 'Atenção: Você digitou os dados errados.', client ); end end ); Tente isso.
.Doctor Posted February 4, 2019 Author Posted February 4, 2019 Ok, quando eu coloco o codigo ele me retorna um erro no console segue anexo o comdigo do server completo root = getRootElement() function PlayerJoin() triggerClientEvent ( source, "openLoginGUI", source, true ) end addEventHandler ( "onPlayerJoin", root, PlayerJoin ) banco = dbConnect( "mysql", "dbname=db_just;host=127.0.0.1", "root", "", "share=1" ) if banco then outputDebugString( "Conectado" ) else outputDebugString( "Desconectado" ) end function PlayerLogin(username,password) qh = dbQuery(banco, "SELECT * FROM accounts WHERE BINARY username=? and password=?", username, password) result , numrows, errmsg = dbPoll (qh, -1) local row = result[1] if row then triggerClientEvent(client, "login.success", client) local account = getAccount(username, password) if (account ~= false) then logIn(client, getAccount(username), password) else end setElementData(client, "isPlayedLoggedIn", true) setElementData(client, "getPlayerUsername", username) else outputChatBox("Atenção: Você digitou os dados errados.", client) end end addEvent( 'onRequestLogin', true ); addEventHandler( 'onRequestLogin', getRootElement( ), function( username, password ) qh = dbQuery( banco, 'SELECT * FROM accounts WHERE BINARY username = ? AND password = ?', username, password ); result, numrows, errmsg = dbPoll( qh, -1 ); local row = result[ 1 ]; if row then triggerClientEvent( client, 'login.success', client ); local account = getAccount( username, password ); if ( not account ) then local newAccount = addAccount( username, password ); if ( newAccount ) then logIn( client, getAccount( username ), password ); end else logIn( client, account, password ); end setElementData( client, 'isPlayedLoggedIn', true ); setElementData( client, 'getPlayerUsername', username ); else outputChatBox( 'Atenção: Você digitou os dados errados.', client ); end end ); Erro retornado "ERROR: Client triggered serverside event onRequestLogin, but event is not added serverside"
Other Languages Moderators androksi Posted February 4, 2019 Other Languages Moderators Posted February 4, 2019 (edited) Troque o getRootElement( ) para resourceRoot. Edited February 4, 2019 by asrzk
.Doctor Posted February 4, 2019 Author Posted February 4, 2019 2 minutes ago, asrzk said: Troque o getRootElement( ) para resourceRoot. o erro continua
Other Languages Moderators androksi Posted February 4, 2019 Other Languages Moderators Posted February 4, 2019 Fiz um teste aqui e funcionou normalmente. Esqueci de citar também, é para alterar o getRootElement( ) do evento onRequestLogin. Se mesmo assim continuar com o erro, verifique o script do lado client, se ele está enviando corretamente.
.Doctor Posted February 4, 2019 Author Posted February 4, 2019 4 minutes ago, asrzk said: Fiz um teste aqui e funcionou normalmente. Esqueci de citar também, é para alterar o getRootElement( ) do evento onRequestLogin. Se mesmo assim continuar com o erro, verifique o script do lado client, se ele está enviando corretamente. o client envia os dados corretamente mas o erro continua segue o codigo server completo novamente root = resourceRoot() function PlayerJoin() triggerClientEvent ( source, "openLoginGUI", source, true ) end addEventHandler ( "onPlayerJoin", root, PlayerJoin ) banco = dbConnect( "mysql", "dbname=db_just;host=127.0.0.1", "root", "", "share=1" ) if banco then outputDebugString( "Conectado" ) else outputDebugString( "Desconectado" ) end function PlayerLogin(username,password) qh = dbQuery(banco, "SELECT * FROM accounts WHERE BINARY username=? and password=?", username, password) result , numrows, errmsg = dbPoll (qh, -1) local row = result[1] if row then triggerClientEvent(client, "login.success", client) local account = getAccount(username, password) if (account ~= false) then logIn(client, getAccount(username), password) else end setElementData(client, "isPlayedLoggedIn", true) setElementData(client, "getPlayerUsername", username) else outputChatBox("Atenção: Você digitou os dados errados.", client) end end addEvent( 'onRequestLogin', true ); addEventHandler( 'onRequestLogin', resourceRoot(), function( username, password ) qh = dbQuery( banco, 'SELECT * FROM accounts WHERE BINARY username = ? AND password = ?', username, password ); result, numrows, errmsg = dbPoll( qh, -1 ); local row = result[ 1 ]; if row then triggerClientEvent( client, 'login.success', client ); local account = getAccount( username, password ); if ( not account ) then local newAccount = addAccount( username, password ); if ( newAccount ) then logIn( client, getAccount( username ), password ); end else logIn( client, account, password ); end setElementData( client, 'isPlayedLoggedIn', true ); setElementData( client, 'getPlayerUsername', username ); else outputChatBox( 'Atenção: Você digitou os dados errados.', client ); end end );
Other Languages Moderators androksi Posted February 4, 2019 Other Languages Moderators Posted February 4, 2019 Retire o () do resourceRoot.
.Doctor Posted February 4, 2019 Author Posted February 4, 2019 4 minutes ago, asrzk said: Retire o () do resourceRoot. dos dois?
Other Languages Moderators androksi Posted February 4, 2019 Other Languages Moderators Posted February 4, 2019 Aquele primeiro lá de cima você deixa como estava. APENAS retire o () do resourceRoot referente ao evento. 1
.Doctor Posted February 4, 2019 Author Posted February 4, 2019 13 minutes ago, asrzk said: Aquele primeiro lá de cima você deixa como estava. APENAS retire o () do resourceRoot referente ao evento. o erro continua :3
.Doctor Posted February 6, 2019 Author Posted February 6, 2019 On 04/02/2019 at 21:36, asrzk said: Aquele primeiro lá de cima você deixa como estava. APENAS retire o () do resourceRoot referente ao evento. Ok Consegui, estava invertendo as coisas obrigado 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now