Estou desenvolvendo um projeto web em php/mysql para uma escola que precisa de um módulo de Presença, a famosa “chamada” através da biometria. Pesquisando conclui que a única forma possível de desenvolver biómetria em “PHP” era utilizando um activex porem no meu projeto não era interessante. Dai encontrei um solução no mercado livre (codigo fonte) a venda por R$50,00 que interagia um executavel em delphi com arquivos PHP. Comprei e adotei no meu projeto e agora estarei disponilizando aqui😛
O desenvolvedor dessa solução utilizou um driver da Griaule generico para capturar a digital através do Delphi. Os leitores testados são:
Leitores suportados:
Microsoft Fingerprint Reader
Digital Persona U.are.U 4000/4000B
SecuGen Hamster FDU02
Geomok (Testech) Bio-I
Crossmatch V250/V300/V300 LC/V300 LC2/V500
No delphi existem 2 opção salvar e reconhecer digital.
Na opção de salvar, ao colocar o dedo no leitor e clicar para salvar o delphi através dos componentes Indy efeturá um post em um arquivo php exemplo: www.dominio.com.br/recebePOST.php. O arquivo php recebe um POST com os numeros das digitas e assim você pode armazenar no seu banco, no caso da solução foi um banco mysql.
A segunda opção é reconhecer a digital, ao clicar para reconhecer, o delphi tb através do componente indy fará uma requisição ao um arquivo seu PHP que retornará para o delphi todas seus codigos das digitais cadastrados e assim será feita uma pesquisa para ver se a digtal que foi precionada confere com alguma já cadastrada. Você pode colocar na função de busca de 1% a 100% de precisão, estou trabalhando com 90%.
Segue o link do codigo fonte para download:
Boa noite, estou precisando de algo assim para um sistema em funcionamento…
Preciso de um orçamento, já tenho sistema funcionando, preciso incrementar as digitais…
Pedro, bom dia
Tenho uma aplicação em PHP com um banco de dados Mysql onde estão cadastrados as pessoas que irão registrar a biometria, podendo ser digital e, caso tenha alguma anormalidade nos dedo, realiza a facial. Meu leitor é um Zkteco Multibio 700 (denominação original da Zk) ou Passface 1022 da Biometrus.
Preciso interagir com o Leitor, assim como gravar e ler as impressões digitais e faciais num endereço definido, sem necessitar de usar a exportação direto pelo aparelho via usb. Você tem alguma aplicação que possa atender minhas necessidades?
Grato
DC
Retorna o seguintes erros:
[Fatal Error] Unable to build. License is invalid or has expired.
[Fatal Error] Unable to build. License is invalid or has expired.
[Fatal Error] Project1.dpr(2): Read error on ‘c:program files (x86)borlanddelphi7LibSystem.dcu’
Poderia me ajudar?
funciona para o leitor u.are.u 4500 da digital persona? se funciona tem que fazer algo a mais?
olá
estou tentando desenvolver um sistema que utilize biometria para a empresa em que trabalho.
faço uso do U.are.U 4000b da digital persona, quando compilo o programa e vou testa-lo o leitor não le nada.
a única alteração que fiz no código original foi os endereços de get e post
poderiam me ajudar?
Anderson
A variável esta invertida!
Arquivo:Unit1.pas escreva:
// cteURLPost = ‘http://rssistemas_sp.hyperphp.com/digitalPost.php’;
// cteURLGet = ‘http://rssistemas_sp.hyperphp.com/digital.php’;
Cara muito interessante!
amigo hoje tentando descobri a solução encontrei uma frase que descreve a sua ação
“O próximo passo da evolução e descobrir que cooperar e melhor que competir
Boa noite Pedro!
Parabéns pela iniciativa de postar o código. Estou fazendo um curso de delphi com biometria e seu código está me ajudando muito. Que sua postura sirva de exemplo aos demais desenvolvedores no que diz respeito a compartilhar o conhecimento. Abraços!
Prezado Pedro, consigo fazer tudo menos passar a variavel pDigital, dá erro HTTP/1.1 403 Forbidden… Existe algo que eu possa fazer? Já procurei de tudo na Internet. Se puder ajudar te agradeço muito! Abs
Olá amigo sei que o post já esta um pouco antigo mais eu estaria precisando de sua ajuda será que vc poderia me ajudar?
passa o teu e-mail para um contato.
Alguém que conseguiu fazer tudo funcionar pode me dar uma força?
vitormc1@hotmail.com
Obrigado!
Amigo baixei o exemplo mas qual tela eu abro pra poder colher a digital? Já modifiquei o arquivo php mas agora não sei como fazer pra colher a digital.
ESTA VERSAO DA DLL DA GRIAULE …ESTA TRIAL
90 DIAS…????????
NAO VEM SEM SER TRIAL…FUNCIONANDO OK !
Pessoal Boa Tarde…
Não manjo nada de Delphi, porém, gostaria de fazer uma incorporação deste sistema, com o sistema que tenho em PHP.
Há possibilidade… já baixei os fontes, porém, não consigo executá-los… assim como, será que posso fazer algum tipo de conexão com o PHP
Galera, funciona no 64 bits esta solução?
O pessoal conseguiu fazer funcionar com banco de dados??
Fernando
Cara, tive o mesmo problema, nao consegui fazer reconhecer de jeito nenhum. Usei banco de dados Firebird.
Ola eu refiz um novo software com base neste exemplo em delphi. O sistema reconhece e grava certinho num banco SQL SErver. Estou com dificuldades para reconhecer. O sistema le a string gravada no banco e manda para função de reconhecimento mas nunca retorna true. Alguem conseguiu fazer funcionar em outro banco? Sera que é o tipo de dado que guarda a string no banco?
Preciso de ajuda. Se alguem puder me ajudar meu e-mail é nandolb@hotmail.com.
Grato.
Para quem gostaria de salvar a imagem da digital, eu utilizo o seguinte código:
DECLARE AS VARIÁVEIS:
Temp: Boolean;
img: TJPEGImage;
diretorio: Pchar;
No meio do código do botão para salvar a digital, coloque:
temp := imgcadastro.Picture.Graphic is TJPEGImage;
img := TJPEGImage.Create;
img.Assign(imgcadastro.Picture.Bitmap);
img.ProgressiveDisplay := True;
// define a qualidade de impressão, vai de 0 a 100, qto maior a qualidade, maior o arquivo
img.CompressionQuality := 100;
img.Compress;
diretorio := ‘C:TCCImagensDigitais’;
// Pchar(DMDados.sPathFotos + ‘Digitais’);
if not DirectoryExists(diretorio) then
CreateDir(diretorio);
// if frmUsuarios nil then
img.SaveToFile(diretorio + dmprincipal.SDSUsuariosCODIGO.AsString + ‘_’ +
campo + ‘.jpg’);
img.Free;
Estou com um problema na parte de identificar a digital, como nao tenho o servidor PHP, e sim um server firebird 2.5 e salvo a string da digital em um Blob Text e converto de WideString para string, como que eu faço para que ele compare a digital?
Na parte do código
function fPesquisa_digitalBase(): boolean;
var
lvStr, lvNm: string;
lvSc: integer;
lvIdx: integer;
lvLst: TStringList;
begin
Result := false;
lvLst := TStringList.Create();
lvLst.Text := form1.http.Get(cteURLGet); <<<<
for lvIdx := 0 to lvLst.Count – 1 do
Eu substitui o lvLst.Text := form1.http.Get(cteURLGet);
por
lvLst.Text :=dmprincipal.SDSUsuarios.FieldByName('str_indicador_direito').AsString;
Mas nao funciona, de que forma eu posso colocar isso para que identifique?
Ola Marcos, consegui colocar o aplicativo pra rodar, porem, estou com um probleminha.
Quando eu cadastro a impressão digital vai para o banco.
Todas impressoes digital vem uma atrás da outra, formando uma gigandesca string.
Exemplo:
Id —-digital
1——-aaaaa
2——-bbbbb
3——-ccccc
4——-ddddd
Retorno do PHP :
aaaabbbbbccccddddd
O aplicativo consegue apenas dizer se a impressão digital é valida ou não, mas não consegue saber de quem é a impressão digital.
Voce tem alguma idéia de como posso resolver isso?
Tiago Junior – Igarassu
Graduando em Sistema da Informação – Faculdade Santa Emília
Desenvolvedor PHP OO – HiperDot – Olinda Digital
tiagojr159@hotmail.com
Mauro,
No sistema proposto é salvo o codigo que referente aos pontos identificados da digital. Salvar a imagem está fora do escopo.
Amigo, como faço para salvar a digital em formato de imagem no banco com esse script e posteriormente recupera-la?
Pedro,
parabéns pelo post e muito obrigado por compartilhar!
Consegui fazer funcionar perfeitamente.
Permita-me fazer somente uma correção.
As constantes abaixo estão invertidas, porque cteURLPost deve armazenar digitalPost.php:
———————-
const
cteURLPost = ‘http://localhost/folhaPonto/biometria/digital.php’;
cteURLGet = ‘http://localhost/folhaPonto/biometria/digitalPost.php’;
—————–
O correto seria:
—————
const
cteURLPost = ‘http://localhost/folhaPonto/biometria/digitalPost.php’;
cteURLGet = ‘http://localhost/folhaPonto/biometria/digital.php’;
—————
Obrigado mais uma vez e abraços!
Luciano
Cara, como que faço pra pegar as informações das digitais no delphi e salvar no banco de dados ?
Lucas, você precisa configurar no Delphi a url que será realizado o POST no seu “scriptcase”.
Infelizmente não posso fazer o projeto para você. Todas informações estão no arquivo que disponbílizei para download.
cara, logo apos configurar o bd, gerar o exe no delphi, como vai ser feita a interação no scriptcase e a leitura da biometria ??? o sistema vai conectar com o banco de dados e busca as inform. ??
Envie por comentário mesmo suas duvidas.
Ok, vou providenciar a instalação do mesmo. Cara, tem como eu entrar em contato com voce por email ? ou algum mensageiro do tipo ? pra esclarecer melhor minhas duvidas ? Obrigado
Lucas, afeta sim. Instale a versão completa.
Bom pedro, instalei o delphi aqui pra ver como funciona mais ou menos, porque nunca mechi com ele intende. Estou tendo o mesmo problema que o Ricardo, o programa nao encontrou a classe “IdTHHP” .. estou usando a versão “portable”. Acha que influencia ? Obrigado
Marcos não faço ideia do que seja.
Lucas conheço o script case sim.
Qual a sua dúvida? Ficou muito vago “como faço para integrar?” ficou parecendo que você não faz ideia do que está fazendo.
Cara, muito bom … Mas tenho algumas duvidas, bom, estou desenvolvendo um sistema parecido om o seu, em scriptcase, conhece ? Bom, tenho que fazer esse sistema seu de leitor biometrico com o meu sistema desenvolvido no scriptcase. Como que faço pra integrar os dois ? a tabela no BD ja está criada … Aguardo retorno. Obrigado
Olá Pedro!
Primeiramente gostaria de agradecer pela iniciativa de postar estes fontes no site!
Porém estou encontrando problemas na verificação, executei a instalação do driver FingerCap, gerei o executável, ele abre sem problemas, porém não coleta a digital. Saberia me dizer o que pode ser?
Grato e no aguardo
Ricardo, eu trabalhei no Delphi 7 sendo a instalação completa e não precisou de nenhum componente.
Baixei os fontes mas ao abrir o Projeto Delphi, deu erro informando que falta o componente IdTHHP. Onde encontro este componente ? O Delphi já não deveria ter este componente instalado ? O que aconteceu ?
Bianca, não é possível realizar o procedimento da forma que você descreveu.
Olá Pedro!
Muito legal sua iniciativa de compartilhar este projeto conosco, parabéns!
Tenho uma super dúvida: este executável gerado do Delphi pode ser chamado por uma página PHP? Pois estou desenvolvendo um sistema para controle de acesso, e existirá um cadastro de visitantes, com campos para preencher os dados pessoais, para capturar foto pela web-cam e impressão digital… gostaria de colocar tudo em uma mesma página PHP. É possível chamar o executável na página PHP?
Muito obrigada, aguardo retorno, Bianca.
Carlos, o limite dos bancos é muito maior que 3mil.
Todos leitores biometricos do post eu recomendo.
Correção: você me ajudou bastante.
Lembrei de algo para perguntar, li na internet vários comentários sobre leitores biometricos, no entanto, não consegui chegar a um concenso, ou seja, qual leitor é o mais confiável. eu estou querendo adquirir o da Microsoft. O que você me sugeri? Eu já vi uma empresa usando um leitor chamado Nitgen Hamster, funcionava perfeitamente, entretanto, eu tenho medo dele não funcionar com este projeto disponibilizado por você.
Caro, você me achou bastante, mas muito mesmo, o projeto é excelente. Mesmo sem um leitor em mãos, eu dei uma olhada no código fonte e achei muito bom, já que estudo a muitos anos delphi ficou fácil de compreender algumas partes. Bom, eu irei fazer algumas modificações, pois eu quero usar um banco de dados local, o firebird 2.5 . Aproveitando ti pergunto, você já leio algo sobre o limite máximo que esse banco de dados suporta? Eu vou precisar cadastrar mais ou menos 2500 a 3000 digitais
Luan, é só abrir o projeto no Delphi que você vai ter uma idéia!
Oi amigo, no post você disse que estava fazendo um projeto escolar, no caso você usou outra linguagem além do php e delphi? Eu estou estudando php, ainda não vi delphi, sei um pouco de mysql, você pode me mostrar como ficou seu projeto web para que eu tenha mais mais noção de como fazer algo complexo? Obrigado.
Alisson, ja experimentou baixar os arquivos? Olhar o codigo e talz? =)
Olá, boa tarde.
Como faço para isso funcionar no PHP?
Comprei um biometrico com o nome FingerPrint Reader APC, mas a digial nao foi escaniada, mesmo com os drivers do Hardware instalados e funcionando, sabe porque?
Pedro,
Fiz tudo como está aqui descrito. quando executo o arquivo Project1.exe executa direitinho, le a digital, mas nao estou conseguindo salvar no banco, nem comparar as digitais. poderia me dar uma ajuda ?
A aplicação funciona baseada nesse driver. Em outro não vai funcionar.
qual o driver basico pra funcionar?
Não funciona no win7 o driver.
Olá Pedro,
Este sistema funciona em windows 7?
Tentei fazer alguns testes aqui mais quando clico em capturar o leitor não acende fica todo apagado. O que pode ser?
Olá,
baixei o fonte, coloquei o PHP, no local correto, mas não grava no banco.
Tens alguma dica?
ALex
Tentei abrir o fonte no Delphi 6 e deu erro:
“error reading http.MaxLineAction: Property MaxLineAction does not exist. Ignore the error and continue? NOTE: ignoring the error may cause components to be deleted or property values to be lost”.
O q pode ser isso? Urgenteeeeeeeeeee
Olá pedro, poderia entrar em contato comigo, preciso que desenvolva um sisteminha simples de cadastro biométrico. Aguardo seu contato.
Olá Cesar, nesse arquivo que disponibilizei, a ideia é fazer exatamente o que você precisa “armazenar” e “verificar” o codigo gerado por cada digital.
Sobre o não funcionamento, temos 2 pontos:
– No script existe uma % de acerto, ou seja se você deixar 100% a digital tem que bater certinha com a cadastrada, eu utilizo no 80%.
– Na minha aplicação realizo 3 cadastros de digitais, para na hora de verificar sempre bate com uma das 3.
Olá Pedro!
Estou desenvolvendo uma aplicação em php para gerenciamento interno de uma clínica de estética. Na questão de autenticação de pacientes e funcionários, vi no seu aplicativo uma forma de gerenciar rápida e simples! Entretanto, no ambiente de testes, o projeto disponibilizado não reconhece nenhuma digital. Mesmo só tendo a minha digital cadastrada no banco, e eu colocando a minha digital no reconhecimento. não dá certo! O que poderia ser?
Estava pensando também em fazer o algoritmo de comparação direto no código php, para que ele pudesse inserir mais dados no banco, de acordo com a minha aplicação! Ou seja, gostaria de usar o delphi apenas para capturar e transformar a digital na string em hexa para armazenamento no banco! Teria como isso ser feito?
Abraços
Consegui usar outro banco de dados,
blz
gostaria de saber porque vc usou a conversão para hexadecimal.
obrigado.
thiago você pode adpatar o script para qualquer banco.
Marcos, depende da conexão dos arquivos php que você configurou.
Amigo seu exemplo é um colírio para nossos olhos em vista da dificuldade de encontrar informações para biometria em php.
Faço todo o procedimento, mas onde vejo o arquivo postado com a biometria?
Observei seu exemplo e é muito bom, gostaria de saber se é possivel aproveita-lo em outro banco de dados e somente no delphi. Outra duvida seria porque a conversão pra hexadecimal.
t+
Usei o Digital Persona U.are.U 4000!
Pessoal infelizmente não deu para entrar em contato com ninguem para poder dar uma força por falta de tempo! A ideia do post foi dar um startup para quem tivesse sem ideias.
Bom dia, estou utilizando um digital persona U4000 Rev.101 mas nada acontece. Qual leitor você utilizou?
cara, tem como entrar em contato contigo por e-mail? tou com um projeto parecido e preciso de ajuda.
Amigo, esta dando o erro socket error 10061, primeiro era a porta 80 ai desativei o teamwier, e apareceu este.. manda a resposta pelo email pra mim,,, estou usando o easyphp apache,mysql,php e instalei o endereço corretamente, localhostbiometria e não envia o post para salvar..
Tentei abrir o fonte no Delphi 2009 e deu erro:
“error reading http.MaxLineAction: Property MaxLineAction does not exist. Ignore the error and continue? NOTE: ignoring the error may cause components to be deleted or property values to be lost”.
O q pode ser isso?
Pedro Puppim
Vou precisar muito de sua ajuda, estou Desenvolvendo meu Projeto de Final de Curso, que seria Desenvolvimento de um Software para Identificação por Leitura Digital Biométrica em Viaturas de Policia, já comprei o Leitor da Persona o mesmo q você utilizou, só a parte da Biometria que vai pegar. Pode me passar seu e-mail ou telefone, estou disposto a pagar pela sua ajuda. Obrigado.
Olá Pedro,
Muito obrigado pelo exemplo e post aqui.
Uma perguntinha. Pelo que entendi, é necessário que o usuário clique em um botão após colocar seu dedo no leitor, para que o reconhecimento seja feito.
Como você implementou isso para o seu sistema de escola? Cada aluno tem que colocar o dedo e apertar o botão? Você fez isso de alguma forma automatizada?
Obrigado
Danilo/Marcos
Leiam até o final o post que tem o link do codigo fonte utilizado.
Amigo,
por favor onde posso conseguir a rotina acima.
tem como me mandar por e-mail ?
estou precisando muito desta rotina.
abcs
Amigo, estou fazendo meu tcc e tenho a intenção de apenas obter a validação do usuario utilizando sua digital, penso em utilizar delphi, porem não entendo muito.. vc teria alguma dica ou algum arquivo que possa me ajudar? obrigado
Olá Jacson, apesar da mensagem de 90 dias, o driver não expira.
este driver da Griaule generico pra capturar é gratis, não vai expirar,ou é so para teste.
Rapaz estou tentando fazer funcionar e estou com o seguinte problema: Clico em capturar ele liga o leitor, recebe a digital mas quando clico em salvar digital da o seguinte erro: HTTP/1.1 404 Not Found. O que tenho que fazer?
Rafael, o primeiro passo é realizar a instalação do delphi completo, depois instalar o driver Griaule para o leitor.
Abra o arquivo .dpr no delphi e edite as constantes das URL´s que o sistema vai utilizar, basicamente é isso.
não tenho nenhuma noção de Delphi, o que tenho que fazer pra fazer os arquivos funcionarem no Delphi.
R$ 210
quanto foi o leitor?
Olá Tiago eu comprei apenas a solução que disponibilizei aqui.
Eu comprei o leitor: Digital Persona U.are.U 4000/4000B só que foi em uma loja física.
Vc pode me informar o link no ML que vc adquiriu o produto? Quero comprar leitor com o mesmo cara.
Obrigado
Baixado.
Podia ter colocado uns link pra comprar o leitor ja 😀
Olá Carlos fiz um teste aqui e o link está funcionando sim.
abs!
Bom dia
O link não funciona seria possivel o envio do ficheiro?
obrigado