Sistema de Login em VB6

Started by lcs, 25 de October , 2007, 11:00:21 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

lcs

Bom pessoal hoje eu vou postar um codigo mto simples, mais eficiente e que pode poupar algum tempo em programação.

Sistema de Login em  VB

1° Crie um banco de dados chamado de "banco.mdb" e  uma tabela no Access com o nome "login" contendo os campos  id (autonumeração), usuario(texot) e senha (texto, com a mascara de entrada sendo "senha").

Abra o VB, va em projetct > References > Microsoft Activex Data Objects 2.8 Library e inclua - o em seu projeto.

Agora crie um módulo e  dentro inclua as seguintes linhas de código

Public con As New ADODB.Connection ' Cria uma variavel para conectar com o banco

Public Function abrebanco()


Set con = New ADODB.Connection ' chama a variavel e faz com que ela inicie uma nova conexão
con.Open "dbq=" & App.Path & "\banco.mdb;driver={Microsoft Access Driver (*.mdb)}" ' mostra o caminho do banco
End Function

Public Function fechabanco()
con.Close ' fecha a conexão
End Function


Agora crie um form e inclua nele 2 campos do tipo Text com os nomes txt_login e txt_senha e ainda um Buttom chamado cmd_entrar

agora abra o procedure do Buttom e inclua o seguinte codigo e inclua o seguinte código

Private Sub Cmd_entrar_Click()
If txt_login.Text = "" Then ' Validação para que o campo Login não esteja vázio
MsgBox "digite o login"
txt_login.SetFocus
Exit Sub
End If
Set rs = con.Execute("select*from login where usuario='" & txt_login & "'") abre a conexão com o banco através da variavel con e cria uma variavel rs para fazer um select no banco.
If rs.EOF Then ' verifica a tabela a procura do login informado, caso for o correto passa para a proxima validação, caso contratio mostra msg de login invalido
MsgBox "login inválido"
txt_login.Text = ""
txt_senha.Text = ""
txt_login.SetFocus
Exit Sub
End If
id = rs("id") ' chave primaria da tabela
If rs("senha") = txt_senha.Text Then ' verifica a senha e caso for incorreta mostra a msg senha errada
mdi.Show
Unload Me
Else
MsgBox "senha incorreta"
txt_senha.Text = ""
txt_senha.SetFocus
End If
Set rs = Nothing ' termina a conexão



e no form load inclua a linha

call abrebanco ' que é nossa função para abrir a conexão com o banco

Pronto esta ai nosso sistema de login e senha.

qualquer duvida é so falar.

falllow
Pra que viver sem sentido.

nizep

na parte da criaçao criaçap do banco de dados do campo senha

como assim "mascara de entrada sendo senha"??

se puder explicar melhor isso ae..   ;D

valeww

lcs

No Acces voce pode definir atributos para o campo, esse atributo senha é para que no banco a senha apareça codificada asiim "****", e no VB voce tb tem que fazer essa opção para "mascarar" a senha , para isso selecione o text box da senha e nos atributos va na opção "passoword char, e digite um *,

fallow qualquer duvida so falar
Pra que viver sem sentido.

nizep


Alucard

Não esqueça que o codigo é vulneravel a sql Injection.

Set rs = con.Execute("select*from login where usuario='" & txt_login & "'")
Antes de anexar o txt na string SQL tente verificar que tipos de caracteres existentes no txt.
Se existir caracteres como "-","'","--",etc... a pesquisa não deve proceguir.

lcs

tipo mais mesmo esse banco não estando disponivel on line?
Pra que viver sem sentido.

Alucard

Quote from: "lcs"tipo mais mesmo esse banco não estando disponivel on line?

Sim, sim...

lcs

Veio se possivel me explica como funciona essa vul ai, tipo eu testei aqui com esses valores e não deu em nada.
Pra que viver sem sentido.

nizep

atraves da variavel de pesquisa vc pode anular o comando do prog e passar outro

Alucard seria bom se vc explicasse melhor como funciona essa vul pra futuramente ela nao estar presente em nossos progs  ;D

Alucard

Bem ultimamente, estou meio sem tempo.
Mas to dando uma olhada...
Me desculpem.

nizep

bom eu fiz uma persquisa rapida aqui e encontrei o seguinte

mesmo que o banco esteja off, quando vc faz uma pesquisa atraves do programa vc tem uma variavel com a palavra a ser pesquisada

um usuario com más intenções pode botar um comentario ou ponto-e-virgula e passar outro comando para ser executado, ignorando o comando verdadeiro do programa

os caracteres a serem filtrados sao os da sintaxe sql:
from|select|insert|delete|where|drop table|show tables|#|\*|--|;

bom naum deu de ir mais afundo pq hj o tempo ta curto

vlw