Pesquisa .DBF

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
mclpaltrin
Usuário Nível 1
Usuário Nível 1
Mensagens: 26
Registrado em: 24 Set 2007 15:17
Localização: Amparo-SP

Pesquisa .DBF

Mensagem por mclpaltrin »

Prezados

- Algum poderia explicar como faço uma consulta em file.dbf
EX:

if SenhaInformada = SenhaGravadaDBF
? "SENHA CORRETA"
else
? "SENHA INVALIDA"
endif

* Usei o seek e found()
Mas não deu certo....poderia passar um exemplo.

Grato
Marcelo
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

Você precisa indexar este arquivo pela chave senha e depois dar um seek e ver se achou assim:

use file
index on senha to indice1
seek senhaInformada
if !eof()
? "senha correta"
else
? "senha incorreta"
endif
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
mclpaltrin
Usuário Nível 1
Usuário Nível 1
Mensagens: 26
Registrado em: 24 Set 2007 15:17
Localização: Amparo-SP

Mensagem por mclpaltrin »

- Estou fazendo assim :

use PASSWORD
if .not. file("SENIND.NTX")
index on SENHA to SENIND
else
set index to SENIND
endif
use PASSWORD index SENIND

pfavor caso encontre erro poderia corrigir...
Grato
Marcelo
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

Caro Marcelo faz assim:

select 0
use PASSWORD alias PASSWORD
if .not. file("SENIND.NTX")
index on SENHA to SENIND
endif
set index to SENIND

quando quiser abrir o arquivo PASSWORD, basta dar um select assim:

select PASSWORD
set order to 1
seek senhadigitada
if !eof()
? "a senha existe"
else
? "a senha nao existe"
endif
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
mclpaltrin
Usuário Nível 1
Usuário Nível 1
Mensagens: 26
Registrado em: 24 Set 2007 15:17
Localização: Amparo-SP

Mensagem por mclpaltrin »

Prezado
- Como vc pode analisar sou novo na linguagem e aqui no forum, grato pela
ajuda, bom conhecer pessoas especialista no assunto.

- Gostaria de tira mais umas duvidas com VC..

- Como faço para fazer uma alteração no caso, sendo que o usuario :: informe um Codigo ou Nome , claro se for codigo vou verificar se existe n table.dbf..?

- Na hora que o usuário informar a senha precisa aparecer o * e converter na string que ele esta informando como faço isso?

pode me ajudar...

GRATO
Marcelo
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

O método "canônico", mais usual, seria você não armazenar a senha, mas o hash MD5 da string equivalente da soma do nome de log-in e a senha do cidadão. Tendo uma chave de índice com esse hash, seria necessária apenas uma pesquisa simples. O Xharbour provavelmente tem uma função para cálculo do hash.

Como você disse que é novo na linguagem, imagino que não saiba o que é um hash. Trata-se de um algoritmo de computação que transforma uma entrada, de qualquer tamanho, numa string alfanumérica de tamanho fixo. É como se o conjunto de dados de entrada tivesse uma impressão digital única. Qualquer posterior alteração na entrada, por menor que seja, produz um hash totalmente diferente. Por isso, hashs são muito utilizados em comparações. E por ser de tamanho fixo, ainda economizam no espaço de armazenamento. São vários tipos: CRC32, MD5, SHA1, etc. Para dados de log-in o mais utilizado é o MD5.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Aliás, em tempo: o XHarbour tem realmente essa função de cálculo do MD5:

HB_MD5( <cString> ) --> cMD5
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

bem, vou colocar um exemplo bem básico

vusuario=space(10) // aqui vc coloca o tamanho do seu campo
vsenha=space(10) // idem

@ 1,1 say "usuario" get vusuario
@ 2,1 say "senha" get vsenha picture ??? tem uma picture aqui que coloca * no momento da digitacao, eu esqueci mas alguem posta ai se lembrar
read

select PASSWORD
seek vusuario+vsenha
if !eof()
? "usuario e senha existem"
else
? "usuario e/ou senha nao existe"
endif

OBS: isso levando em consideracao que vc tem o campo usuario e senha no mesmo DBF e sua tabela está ordenada assim: index on usuario+senha to indice
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

tem uma picture aqui que coloca * no momento da digitacao, eu esqueci mas alguem posta ai se lembrar
Padrão no XHarbour? E tem? Olhando o help dele vejo que não há nada sobre isso.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

desculpa, näo é picture é set color

set color to w+/n,x

assim tudo oq vc digitar na senha nao vai aparecer na tela, mas será armazenado na variável....
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Existem alguns exemplos no tópico "Campo Senha" verifique e boa sorte.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Cor de frente e fundo iguais? Não é o que se pode chamar de método seguro, já que um print-screen revelará o conteúdo da digitação. Sem falar que fica bastante incômodo pra digitar. É provável que alguém já tenha postado na seção de XHarbour alguma função para colocar asteríscos no campo da senha. Na seção de Clipper tem uma discussão recente sobre isso.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Maligno escreveu:
tem uma picture aqui que coloca * no momento da digitacao, eu esqueci mas alguem posta ai se lembrar
Padrão no XHarbour? E tem? Olhando o help dele vejo que não há nada sobre isso.
GetSecret()
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

sygecom escreveu:GetSecret()
No meio da lista de GETs?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Qual o problema ? baixe, leia o help e faça o teste que vera que tem como...
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder