Jump to content

Ajuda contas mysql


Recommended Posts

Posted

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
Posted

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.

  • Thanks 1
Posted
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
Posted
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?

Posted
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
Posted
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.

Posted

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
Posted (edited)

Troque o getRootElement( ) para resourceRoot.

Edited by asrzk
  • Other Languages Moderators
Posted

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.

Posted
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
Posted

Aquele primeiro lá de cima você deixa como estava. APENAS retire o () do resourceRoot referente ao evento.

  • Thanks 1
Posted
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

Posted
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 ❤️

  • Like 1

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...