.Doctor Posted February 4, 2019 Share 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 Link to comment
Other Languages Moderators androksi Posted February 4, 2019 Other Languages Moderators Share 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 Link to comment
.Doctor Posted February 4, 2019 Author Share 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? Link to comment
Other Languages Moderators androksi Posted February 4, 2019 Other Languages Moderators Share 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? Link to comment
.Doctor Posted February 4, 2019 Author Share 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 Link to comment
Other Languages Moderators androksi Posted February 4, 2019 Other Languages Moderators Share 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. Link to comment
.Doctor Posted February 4, 2019 Author Share 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" Link to comment
Other Languages Moderators androksi Posted February 4, 2019 Other Languages Moderators Share Posted February 4, 2019 (edited) Troque o getRootElement( ) para resourceRoot. Edited February 4, 2019 by asrzk Link to comment
.Doctor Posted February 4, 2019 Author Share Posted February 4, 2019 2 minutes ago, asrzk said: Troque o getRootElement( ) para resourceRoot. o erro continua Link to comment
Other Languages Moderators androksi Posted February 4, 2019 Other Languages Moderators Share 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. Link to comment
.Doctor Posted February 4, 2019 Author Share 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 ); Link to comment
Other Languages Moderators androksi Posted February 4, 2019 Other Languages Moderators Share Posted February 4, 2019 Retire o () do resourceRoot. Link to comment
.Doctor Posted February 4, 2019 Author Share Posted February 4, 2019 4 minutes ago, asrzk said: Retire o () do resourceRoot. dos dois? Link to comment
Other Languages Moderators androksi Posted February 4, 2019 Other Languages Moderators Share Posted February 4, 2019 Aquele primeiro lá de cima você deixa como estava. APENAS retire o () do resourceRoot referente ao evento. 1 Link to comment
.Doctor Posted February 4, 2019 Author Share 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 Link to comment
.Doctor Posted February 6, 2019 Author Share 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 Link to comment
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