Página 1 de 2

Pesquisa .DBF

Enviado: 08 Out 2007 14:21
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

Enviado: 08 Out 2007 14:47
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

Enviado: 08 Out 2007 15:00
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

Enviado: 08 Out 2007 15:34
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

Enviado: 08 Out 2007 16:16
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

Enviado: 08 Out 2007 16:26
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.

Enviado: 08 Out 2007 16:32
por Maligno
Aliás, em tempo: o XHarbour tem realmente essa função de cálculo do MD5:

HB_MD5( <cString> ) --> cMD5

Enviado: 08 Out 2007 16:42
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

Enviado: 08 Out 2007 16:45
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.

Enviado: 08 Out 2007 16:53
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....

Enviado: 08 Out 2007 16:56
por alaminojunior
Existem alguns exemplos no tópico "Campo Senha" verifique e boa sorte.

Enviado: 08 Out 2007 16:57
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.

Enviado: 08 Out 2007 17:03
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()

Enviado: 08 Out 2007 17:05
por Maligno
sygecom escreveu:GetSecret()
No meio da lista de GETs?

Enviado: 08 Out 2007 17:06
por sygecom
Qual o problema ? baixe, leia o help e faça o teste que vera que tem como...