Jump to content
Fivewin Brasil

Senha de acesso.(Resolvido)


vmolina

Recommended Posts

Pessoal boa tarde,

tenho o seguinte código:

DEFINE DIALOG oDlg RESOURCE "senha" TITLE "Acesso do usuário"

REDEFINE GET oGetLogin VAR cLogin ID 101 OF oDlg

REDEFINE GET oGetSenha VAR cSenha ID 102 OF oDlg

REDEFINE BUTTON ID 103 OF oDlg ACTION (lOk:=.t.,oDlg:end())

REDEFINE BUTTON ID 104 OF oDlg ACTION (lOk:=.f.,oDlg:end())

ACTIVATE DIALOG oDlg CENTERED

A dúvida é a seguinte, tenho uma tabela criada no bd mysql gostaria de autenticar essa senha e usuário na tabela que criei.

Como devo proceder?

Desde já agradeço a todos pelo espaço.

Vitor Molina

vitormolina@gmail.com

FW 10.12 + xHarbour 1.2.1 (6717) | BCC 5.82

Editado por - vmolina on 02/02/2012 08:56:27

Link to comment
Share on other sites

Pessoal boa tarde,

tenho o seguinte código:

DEFINE DIALOG oDlg RESOURCE "senha" TITLE "Acesso do usuário"

REDEFINE GET oGetLogin VAR cLogin ID 101 OF oDlg

REDEFINE GET oGetSenha VAR cSenha ID 102 OF oDlg

REDEFINE BUTTON ID 103 OF oDlg ACTION (lOk:=.t.,oDlg:end())

REDEFINE BUTTON ID 104 OF oDlg ACTION (lOk:=.f.,oDlg:end())

ACTIVATE DIALOG oDlg CENTERED

A dúvida é a seguinte, tenho uma tabela criada no bd mysql gostaria de autenticar essa senha e usuário na tabela que criei.

Como devo proceder?

Desde já agradeço a todos pelo espaço.

Vitor Molina

vitormolina@gmail.com

FW 10.12 + xHarbour 1.2.1 (6717) | BCC 5.82

Editado por - vmolina on 02/02/2012 08:56:27

Link to comment
Share on other sites

Vitor

Boa tarde

Adicione no seu get um valid com a função de buscar os dados do usuário.


REDEFINE GET oGetLogin VAR cLogin ID 101 OF oDlg VALID TestaFuncao()

FUNCTION TESTAFUNCAO()

// busca dados no Banco de Dados

RETUNR .T.

id=code>id=code>

Att

João Bosco

foto.jpg

Contagem/MG

FWH 10.6b xHb 1.2.1 WorkShop 4.5

PellesC SQLLIB SQLRDD

Link to comment
Share on other sites

Vitor seria algo assim:

FUNCTION TESTAFUNCAO(cLogin,cSenha)

if Usuarios->(dbsetorder(1),dbseek(cLogin)

if !(usuarios->senha == cSenha)

msgstop("Senha invalida!","ATENÇAO")

RETURN .F.

endif

else

msgstop("Usuario nao cadastrado!","ATENCAO")

RETURN .F.

endif

RETURN .T.

FWH9.12

PELLES+SQLLIB+SQLRDD+MYSQL

Editado por - aokisantos on 19/01/2012 17:59:03

Editado por - aokisantos on 20/01/2012 10:29:04

Link to comment
Share on other sites

Olá, solucionou sua dúvida?

Creio que você está começando, não fique com vergonha de perguntar, por mais besta que possa parecer. ^^

Você disse bd sql, você fez a conexão com o banco de dados? Conseguiu conferir o digitado com a informação no bd?

Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY)

NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO

Link to comment
Share on other sites

Eco_fw, as vezes fico até sem jeito de perguntar essas coisas mas sou um iniciante na programação FiveWin ai não tem jeito as duvidas vem aparecendo e não temos tanto material disponível para estudo.

Só montei o diálogo. gastaria de fazer a conexão com o bd mysql e autenticar os campos do dialogo com os dados inseridos no bd? e se possível aprender tb inserir dados no banco através dos campos dos dialogo? é muita coisa..rsrs

Desde já agradeço

Vitor Molina

vitormolina@gmail.com

FW 10.12 + xHarbour 1.2.1 (6717) | BCC 5.82

Link to comment
Share on other sites

Hehehe, não é muita coisa não ^^

Uma pergunta, você tem a SQLLIB?

Biblioteca criada pelo Vailtom.

Se não tiver, vou pesquisar como fazer conexão só por comandos nativos para lhe passar, ou se alguém já souber, vai postando.

Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY)

NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO

Link to comment
Share on other sites

Opa, tava enrolado aki.....

então, pelo que sei o fw não tem nenhuma classe nativa de conexão com mysql. Tente baixar a SQLLIB mesmo.

Tente entrar em contato com o Vailton ou pelo site dele.....

http://www.vailton.com.br

Conseguindo instalar aí, ajuda não falta. ^^

Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY)

NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO

Link to comment
Share on other sites

  • 2 weeks later...

Function Senha()

Local oDlg,ogetLogin,ogetSenha,cLogin:=space(20),cSenha:=space(10),lOk:=.f.

DEFINE DIALOG oDlg RESOURCE "senha" TITLE "Acesso do usuário" ICON "vitor_icone.ico"

REDEFINE GET oGetLogin VAR cLogin ID 101 OF oDlg

REDEFINE GET oGetSenha VAR cSenha ID 102 OF oDlg

REDEFINE BUTTON ID 103 OF oDlg ACTION (lOk:=.t.,oDlg:end())

REDEFINE BUTTON ID 104 OF oDlg ACTION (lOk:=.f.,oDlg:end())

ACTIVATE DIALOG oDlg CENTERED

if lOk==.f.

? " Olá, " +cLogin

sql_cmd = "SELECT Login,Senha FROM cadastro WHERE Login='"+cLogin+"'"

else

alert('Você clicou em sair')

endif

Return nil

Como devo proceder para fazer a autenticação com o banco de dados para verificar se a senha e o usuário estão corretos?

Obs.: utilizando BD MySql!!!

Desde já agradeço

Vitor Molina

vitormolina@gmail.com

FW 10.12 + xHarbour 1.2.1 (6717) | BCC 5.82 | Workshop V4.5

Editado por - vmolina on 01/02/2012 10:42:30

Link to comment
Share on other sites

Veja se entende o código, e se está certo ^^

qualquer coisa só falar.


Function Senha()

LOCAL oDlg

LOCAL ogetLogin

LOCAL ogetSenha

LOCAL cLogin:=space(20)

LOCAL cSenha:=space(10)

LOCAL lOk:=.f.

LOCAL cSQL

LOCAL aSQL

DEFINE DIALOG oDlg RESOURCE "senha" TITLE "Acesso do usuário" ICON "vitor_icone.ico"

REDEFINE GET oGetLogin VAR cLogin ID 101 OF oDlg

REDEFINE GET oGetSenha VAR cSenha ID 102 OF oDlg

REDEFINE BUTTON ID 103 OF oDlg ACTION (lOk:=.t.,oDlg:end())

REDEFINE BUTTON ID 104 OF oDlg ACTION (lOk:=.f.,oDlg:end())

ACTIVATE DIALOG oDlg CENTERED

IF !lOk //Isso é o botão sair? Entendi assim

?'Você clicou em sair'

RETURN

ENDIF

cSQL:='SELECT LOGIN,SENHA FROM CADASTRO WHERE LOGIN = '+SQLSTR(cLogin)

aSQL:=sqlArray(cSQL)

IF EMPTY(aSQL)

MSGINFO('Usuário informado não encontrado.','ATENÇÃO') //Não existe este Login no BD

RETURN

ENDIF

cBDSenha:=ALLTRIM(UPPER(aSQL[01,02]))

cSenha:=ALLTRIM(UPPER(cSenha)) //Tirei os espaços em branco e deixei em maiúsculo para testar com o retorno do BD

IF cSenha != cBDSenha

MSGINFO('Senha informada está incorreta.','ATENÇÃO')

RETURN

ENDIF

MSGINFO('Login e senha bateram, eeeeeeee ^^.','ATENÇÃO')

Return nil

id=code>id=code>

Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY)

NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO

Editado por - eco_fw on 01/02/2012 10:47:33

Editado por - eco_fw on 01/02/2012 10:48:01

Link to comment
Share on other sites

Valeu Kapiaba pela dica.

Eco, mais uma vez muito obrigado funcionou certinho aqui.

Eu só gostaria que você me explica-se essa linha do comando.

cBDSenha:=ALLTRIM(UPPER(aSQL[01,02]))

Desde já agradeço pela ajuda e atenção.

Att

Vitor Molina

vitormolina@gmail.com

FW 10.12 + xHarbour 1.2.1 (6717) | BCC 5.82 | Workshop V4.5

Link to comment
Share on other sites

Opa...

é que a função sqlArray, traz o retorno do banco de dados do seu select, em forma de matriz multi dimensional (use a funcao tostring passando como parâmetro o retorno do sqlArray para entender melhor)

como EU não sei direito o que o banco vai lhe retornar, ou seja, não sei se ele vai retornar a senha sem espaços ou com espaços, eu fiz ALLTRIM no retorno para não ter problema, pois

'123' é diferente de '123___'

o UPPER, serve para deixar seu texto em maiúsculo, isso eu fiz para validar a senha, independente do case sensitive, ou seja, se o usuário digitou a senha 'AbCdE'

essa string ficará 'ABCDE', e o retorno do banco também ficará assim.

Mas o certo é não fazer esse UPPER.

Não sei se me expressei bem, qq coisa diga ae ^^

Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY)

NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO

Link to comment
Share on other sites

Para você entender o retorno do banco... tente simular um código desse...

Simule uma tabela assim:


TABLE Clientes

------------------

Codigo Nome Idade

------------------

1 Zé 10

2 Jão 15

3 Mané 25

4 Tonzé 88

cSQL:='SELECT CODIGO,NOME,IDADE FROM CLIENTES'

aSQL:=sqlArray(cSQL)

a sua tabela aSQL, será uma matriz multi dimensional com exatemente os dados acima, ou seja:

?aSQL[01,01] // 1

?aSQL[01,02] // 'Zé'

?aSQL[01,03] // 10

?aSQL[02,01] // 2

?aSQL[02,02] // 'Jão'

?aSQL[02,03] // 15

?aSQL[03,01] // 3

?aSQL[03,02] // 'Mané'

?aSQL[03,03] // 25

?aSQL[04,01] // 4

?aSQL[04,02] // 'Tonzé'

?aSQL[04,03] // 88

para ler isso em programa, utilizamos das estruturas de repetição...

FOR i:=1 TO LEN(aSQL) //LEN retorna o tamanho da matriz, ou seja 4 linhas

?aSQL[ i , 01 ],aSQL[ i , 02 ],aSQL[ i , 03 ]

NEXT

?TOSTRING(aSQL)

id=code>id=code>

Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY)

NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO

Link to comment
Share on other sites

Eco desculpe pela insistência, mas ta acontecendo o seguinte no campo de Senha.

Digito o usuário ex.: Vitor senha: 12345 seu eu digitar esse mesmo usuário com uma senha: 1234567890 passa tb, agora se for uma senha 2343546 aí acusa que senha não confere. coloquei a função TOSTRING(aSQL) e veio os seguintes dados da Tabela no BD {{'Vitor','12345'}}.

Desde já agradeço a atenção.

Vitor Molina

vitormolina@gmail.com

FW 10.12 + xHarbour 1.2.1 (6717) | BCC 5.82 | Workshop V4.5

Link to comment
Share on other sites

Opa, pode insistir ^^

o programa não está caindo no trecho abaixo acusando que a senha está errada?


IF cSenha != cBDSenha

MSGINFO('Senha informada está incorreta.','ATENÇÃO')

RETURN

ENDIF

id=code>id=code>

talvez você está testando variáveis incorretamente ou tem algum problema que não estou vendo, se não for erro seu, no teste das variáveis acima, poste o código para vermos.

No trecho das variáveis, coloque mensagem pra descobrir o porque não está entrando no IF

?'"'+cSenha+'"' , LEN( cSenha )

?'"'+cBDSenha+'"' , LEN( cBDSenha )

?cSenha == cDBSenha

Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY)

NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO

Link to comment
Share on other sites

Valeu Eco.

Com o SqlArray ele busca a senha na tabela do BD, se a senha do BD é 12345 ele busca essa sequencia e se eu digitar 12345678, como fez a sequencia que o array busco ele não leva em consideração o 678 e acusa que foi feito o login com sucesso, mas quando eu digito uma senha(ex.9485458) que não tem nada a ver com a que está cadastrada no bd o programa acusa senha incorreta. será que entendi essa mistureba que eu fiz?

-----------------------------------------------------------------------------------------------

Function Senha(oWnd)

LOCAL oDlg

LOCAL ogetLogin

LOCAL ogetSenha

LOCAL cLogin:=space(20)

LOCAL cSenha:=space(10)

LOCAL lOk:=.f.

LOCAL cSQL

LOCAL aSQL

DEFINE DIALOG oDlg RESOURCE "senha" TITLE "Acesso do usuário" ICON "vitor_icone.ico"

REDEFINE GET oGetLogin VAR cLogin ID 101 OF oDlg

REDEFINE GET oGetSenha VAR cSenha ID 102 OF oDlg

REDEFINE BUTTON ID 103 OF oDlg ACTION (lOk:=.t.,oDlg:end())

REDEFINE BUTTON ID 104 OF oDlg ACTION (lOk:=.f.,oDlg:end())

ACTIVATE DIALOG oDlg CENTERED

IF !lOk //Isso é o botão sair? Entendi assim

return

ENDIF

IF cLogin=" "

MsgAlert("Campo NOME não pode der nulo!","Aviso") //VALIDA OS CAMPOS OBRIGATORIOS

Return .f.

ENDIF

IF cSenha=" "

MsgAlert("Campo NOME não pode der nulo!","Aviso") //VALIDA OS CAMPOS OBRIGATORIOS

Return .f.

ENDIF

cSQL:='SELECT login,senha FROM cadastro WHERE login = '+SQLSTR(cLogin)

aSQL:=sqlArray(cSQL)

?TOSTRING(aSQL)

IF EMPTY(aSQL)

MSGINFO('Usuário informado não encontrado.','ATENÇÃO') //Não existe este Login no BD

RETURN

ENDIF

cBDSenha:=ALLTRIM(UPPER(aSQL[01,02]))

cSenha:=ALLTRIM(UPPER(cSenha)) //Tirei os espaços em branco e deixei em maiúsculo para testar com o retorno do BD

IF cSenha != cBDSenha

MSGINFO('Senha informada está incorreta.','ATENÇÃO')

RETURN

ENDIF

? " Olá, " +cLogin

Return nil

Vitor Molina

vitormolina@gmail.com

FW 10.12 + xHarbour 1.2.1 (6717) | BCC 5.82 | Workshop V4.5

Editado por - vmolina on 01/02/2012 16:19:41

Link to comment
Share on other sites

citação:

Valeu Eco.

Com o SqlArray ele busca a senha na tabela do BD, se a senha do BD é 12345 ele busca essa sequencia e se eu digitar 12345678, como fez a sequencia que o array busco ele não leva em consideração o 678 e acusa que foi feito o login com sucesso, mas quando eu digito uma senha(ex.9485458) que não tem nada a ver com a que está cadastrada no bd o programa acusa senha incorreta. será que entendi essa mistureba que eu fiz?

-----------------------------------------------------------------------------------------------

Function Senha(oWnd)

LOCAL oDlg

LOCAL ogetLogin

LOCAL ogetSenha

LOCAL cLogin:=space(20)

LOCAL cSenha:=space(10)

LOCAL lOk:=.f.

LOCAL cSQL

LOCAL aSQL

DEFINE DIALOG oDlg RESOURCE "senha" TITLE "Acesso do usuário" ICON "vitor_icone.ico"

REDEFINE GET oGetLogin VAR cLogin ID 101 OF oDlg

REDEFINE GET oGetSenha VAR cSenha ID 102 OF oDlg

REDEFINE BUTTON ID 103 OF oDlg ACTION (lOk:=.t.,oDlg:end())

REDEFINE BUTTON ID 104 OF oDlg ACTION (lOk:=.f.,oDlg:end())

ACTIVATE DIALOG oDlg CENTERED

IF !lOk //Isso é o botão sair? Entendi assim

return

ENDIF

IF cLogin=" " //==============================//

MsgAlert("Campo NOME não pode der nulo!","Aviso")//----------------//VALIDA OS CAMPOS OBRIGATORIOS=//

Return .f. //==============================//

ENDIF

IF cSenha=" " //==============================//

MsgAlert("Campo NOME não pode der nulo!","Aviso")//----------------//VALIDA OS CAMPOS OBRIGATORIOS=//

Return .f. //==============================//

ENDIF

cSQL:='SELECT login,senha FROM cadastro WHERE login = '+SQLSTR(cLogin)

aSQL:=sqlArray(cSQL)

?TOSTRING(aSQL)

IF EMPTY(aSQL)

MSGINFO('Usuário informado não encontrado.','ATENÇÃO') //Não existe este Login no BD

RETURN

ENDIF

cBDSenha:=ALLTRIM(UPPER(aSQL[01,02]))

cSenha:=ALLTRIM(UPPER(cSenha)) //Tirei os espaços em branco e deixei em maiúsculo para testar com o retorno do BD

IF cSenha != cBDSenha

MSGINFO('Senha informada está incorreta.','ATENÇÃO')

RETURN

ENDIF

? " Olá, " +cLogin

Return nil

Vitor Molina

vitormolina@gmail.com

FW 10.12 + xHarbour 1.2.1 (6717) | BCC 5.82 | Workshop V4.5


id=quote>id=quote>

Olá,

Não deveria ocorrer isso, mas em todo caso compare ao contrario


cSenha := AllTrim(cSenha)

cBDSenha := AllTrim(cBDSenha)

IF cSenha == cBDSenha

MsgInfo("Olá, "+cLogin)

Else

MSGINFO('Senha informada está incorreta.','ATENÇÃO')

RETURN

ENDIF

id=code>id=code>

Vagner Wirts

bgprofilea.jpg

"Ele não sabendo que era impossível, foi lá e fez"

Link to comment
Share on other sites

Bom, não tem erros mesmo, compare o contrário, como o Vagner disse, mas isso está esquisito.

O que o FW deve estar fazendo é:

SE cSenha NÃO ESTIVER CONTIDO EM cBDSenha

mas cSenha está contido, realmente, mas não era para interpretar assim, era para ver assim

SE cSenha FOR DIFERENTE DE cBDSenha

mas isso é o que EU acho que está ocorrendo.

Coloque as mensagens que eu falei pra você, e envie os retornos pra gente ver...


cBDSenha:=ALLTRIM(UPPER(aSQL[01,02]))

cSenha:=ALLTRIM(UPPER(cSenha)) //Tirei os espaços em branco e deixei em maiúsculo para testar com o retorno do BD

//Informe exatamente o retorno desses testes, se puder

?'"'+cSenha+'"' , LEN( cSenha )

?'"'+cBDSenha+'"' , LEN( cBDSenha )

?cSenha == cBDSenha , cSenha != cBDSenha

IF cSenha != cBDSenha

MSGINFO('Senha informada está incorreta.','ATENÇÃO')

RETURN

ENDIF

id=code>id=code>

DECLARE cBDSenha como variável LOCAL

Criei um projeto bem simples, com o seguinte código:


A:='12345'

B:='123456789'

?A != B //Aqui retorna TRUE, diferente do seu, que está retornando FALSE

id=code>id=code>

Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY)

NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO

Link to comment
Share on other sites

VAGNER OBRIGADO PELA AJUDA, MAS TA DANDO O SEGUINTE ERRO:

Application

===========

Path and name: C:\FW1012\samples\vitor.exe (32 bits)

Size: 2,082,304 bytes

Time from start: 0 hours 0 mins 7 secs

Error occurred at: 01/02/12, 16:37:17

Error description: Error BASE/1003 Variable does not exist: CBDSENHA

Vitor Molina

vitormolina@gmail.com

FW 10.12 + xHarbour 1.2.1 (6717) | BCC 5.82 | Workshop V4.5

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...