Jump to content

Ajuda contas mysql


Recommended Posts

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

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
Link to comment
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
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
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
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

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

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

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