Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jonatas_jow

Tela de login com mysql

Recommended Posts

Estou tentando fazer uma tela de login onde o usuario insere o login e a senha e ele precisa buscar no banco de dados mysql se o usuario esta cadastrado, ja fiz a tela de cadastro de usuarios mas não consigo selecionar o usuario e senha na hora de fazer o login pois ele tambem tem pemisso de administtrador e usuario.

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem sua tabela de usuários, certo? ela no mínimo deve ser compostas pelos campos:

CREATE TABLE usuarios (
 login VARCHAR(20) NOT NULL PRIMARY KEY,
 senha VARCHAR(32) NOT NULL,
 nivel INTEGER NOT NULL DEFAULT 99);
/* A implementação do campo referênte ao nível de acesso irá variar de acordo com o design do seu sistema */

 

Para realizar o login, você ira fazer uma Query que busque os dados do usuário onde o login e a senha sejam iguais ao informado no formulário:

SELECT * FROM usuarios
WHERE login = :Plogin AND senha = :Psenha
LIMIT 1;
/* LIMIT 1 faz retornar apenas 1 registro independente de quantos registro sejam compatíveis com a consulta. */

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem sua tabela de usuários, certo? ela no mínimo deve ser compostas pelos campos:

CREATE TABLE usuarios (
 login VARCHAR(20) NOT NULL PRIMARY KEY,
 senha VARCHAR(32) NOT NULL,
 nivel INTEGER NOT NULL DEFAULT 99);
/* A implementação do campo referênte ao nível de acesso irá variar de acordo com o design do seu sistema */

 

Para realizar o login, você ira fazer uma Query que busque os dados do usuário onde o login e a senha sejam iguais ao informado no formulário:

SELECT * FROM usuarios
WHERE login = :Plogin AND senha = :Psenha
LIMIT 1;
/* LIMIT 1 faz retornar apenas 1 registro independente de quantos registro sejam compatíveis com a consulta. */

Por favor da uma olhada no codigo que criei em cima do seu mas teria que verificar o usuario e a senha para que quando abrir habilita alguns botões ou não.

  Datamodule3.ADODataset1.active:= false;
 Datamodule3.ADODataset1.CommandText:='select *from caduser where login =:plogin and senha=:psenha';
 Datamodule3.ADODataset1.Active:=true;

Compartilhar este post


Link para o post
Compartilhar em outros sites

a query aparentemente está correta mas você testou a mesma para saber se retorna os dados solicitados? Se você não sabe trabalhar com parâmetros em SQL, você pode substituir os mesmos por uma concatenação de strings, exemplo:

Datamodule3.ADODataset1.CommandText:='SELECT * FROM caduser WHERElogin = ' + QuotedStr(edtLogin.Text) +' AND senha = ' + QuotedStr(edtSenha.Text);

Compartilhar este post


Link para o post
Compartilhar em outros sites

a query aparentemente está correta mas você testou a mesma para saber se retorna os dados solicitados? Se você não sabe trabalhar com parâmetros em SQL, você pode substituir os mesmos por uma concatenação de strings, exemplo:

Datamodule3.ADODataset1.CommandText:='SELECT * FROM caduser WHERElogin = ' + QuotedStr(edtLogin.Text) +' AND senha = ' + QuotedStr(edtSenha.Text);

ELe retorna sim, mas oque teria que fazer é verificar se oque eu digito no text é igual ao login e a senha ja cadastrados no banco e se for igual abre a proxima tela senao nao entra.

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você configurou corretamente os componentes de conexão ao banco?

Precisa configurar os parâmetros também do ClientDataSet e, do SqlDataSet, assim, a sua consulta funcionará da forma correta.

Utilizo aqui e não dá zica nenhuma, ainda é possível criptografar (mais é um pouco mais trabalhoso rsrsr).

Veja isso aqui:

http://forum.devmedia.com.br/viewtopic.php?t=78536&sid=56f56c1e6c1e064d05cb59f6c513d87e

A técnica é a mesma

 

Que a força do código esteja com você!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você configurou corretamente os componentes de conexão ao banco?

Precisa configurar os parâmetros também do ClientDataSet e, do SqlDataSet, assim, a sua consulta funcionará da forma correta.

Utilizo aqui e não dá zica nenhuma, ainda é possível criptografar (mais é um pouco mais trabalhoso rsrsr).

Veja isso aqui:

http://forum.devmedia.com.br/viewtopic.php?t=78536&sid=56f56c1e6c1e064d05cb59f6c513d87e

A técnica é a mesma

 

Que a força do código esteja com você!

Sim pois ele retorna os valores normalmente oque não consigo fazer é verificar o login digitado com o login cadastrado no banco ja tentei colocar em variaveis e comparar as variaveis mas não deu certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta fazer isso depois de realizar a consulta:

Considerando o usuario existente:

Atribua o valor da senha(retornado do db) a uma variavel e compare com o valor de entrada no edit.

 

if (senha = editsenha.text) then
  proximoform.showmodal // chama o proximo form
else
  showmessage('Login ou senha incorretos');
end;

 

E lembre-se. Se o campo do banco referente a senha for int, voce deve realizar a conversao antyes de testar.

if (inttostr(senha)) = editsenha.text) then
  proximoform.showmodal // chama o proximo form
else
  showmessage('Login ou senha incorretos');
end;

 

Pelo que eu etendi que voce nao conseguiu fazer foi isso.

Seria mais facil voce postar o codigo inteiro(desta parte) junto com a checagem. Fica mais facil poder ajudar.

 

To sem delphi e MySql aqui pra realizar os testes.

Verifique a sintaxe(que eu postei).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.