Clique abaixo para nos ajudar
Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
21 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 21 Visitantes :: 2 Motores de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Como preencher campos vazios

9/2/2017, 11:55 por Linghston

Pessoal boa tarde,

É o seguinte, eu preciso preencher os campos de uma coluna da tabela DBF que …

Comentários: 2

Enviar msg para WhatsAPP via VFP

7/2/2017, 10:31 por Eliana

Olá Pessoal!

Alguém sabe se é possível enviar mensagem para o WhatsAPP via VFP?


Grata


Comentários: 0

Tudo dá errado

3/2/2017, 16:50 por Douglas Pascini

Troquei de maquina, achei que seria uma boa, [Você precisa estar registrado e conectado para ver esta imagem.]  pois passei para uma maquina melhor.

Instalei o …

Comentários: 1

URGENTE - Instalação do aplicativo

24/1/2017, 08:51 por Douglas Pascini

Bom dia. Estou com um problema, ao fazer a instalação (colocar os arquivo) do aplicativo na …

Comentários: 0

USAR REPORT FORM

30/12/2016, 09:06 por AJC

Pessoal bom dia,
Estou com um grande problema, já pesquisei muita coisa sobre report form, mas o …

Comentários: 3

Estatísticas
Temos 7014 usuários registrados
O último usuário registrado atende pelo nome de Jhoniker Braulio (IOTech)

Os nossos membros postaram um total de 20 mensagens em 11 assuntos

Autenticações

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido Autenticações

Mensagem por JDoria em 1/9/2009, 13:36

Boa tardes, gostaria de saber se é possivel e como, atraves do VFP, fazer um sistema de autenticação.
Estou a fazer o projecto final de curso e agradeço toda a ajuda que me poderao dar.
Muito obrigado

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por Tales Ruan em 1/9/2009, 13:43

Boa tarde cara..

Poderia me dar mais detalhes do que você quer dizer com "Sistema de autenticação" ?

Me dê mais detalhes. É uma tela de login para um sistema ou algo assim?

Tales Ruan
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por JDoria em 1/9/2009, 13:47

Exactamente, é como fazer com que um usuario possa aceder ao programa apos a colocaçao de um login e uma password.

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por Marcos Guedes em 1/9/2009, 13:58

Algumas alternativas seriam a seguinte:

- Utilize um modelo de criptografia (por uma questão de segurança).

- Como se trata de login e senha, o ideal seria utilizar MD5.
- Mas se em algum momento você precisar decriptografar os dados armazenados, então aconselho o uso de Criptografia Blowfish.

Temos um exemplo de Criptografia MD5 e Blowfish no seguinte link:
[Você precisa estar registrado e conectado para ver este link.]

A autenticação pode ser da seguinte forma:
1. Acessando uma Base de Dados.
2. Através de um arquivo com dados criptografados.

Na primeira alternativa você precisa apenas acessar o banco de sua aplicação e comparar os valores digitados pelo usuário.

Na segunda alternativa você precisará comparar os dados fornecidos pelo usuário com o conteúdo do arquivo.
Como se trata de arquivos, você poderia unir o login e senha separado por virgula e criptografados.

Com estas dicas dá para desenrolar?

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por JDoria em 1/9/2009, 14:22

Agradeço muito a vossa ajuda e peço desculpa pela minha ignorancia. É a primeira vez que utilizo o VFP e como nao tenho ninguem que entenda e me possa ajudar na minha escola estou com muitas dificuldades em terminar o meu projecto.

A minha ideia era acessar pelo banco de dados da aplicaçao e comparar os valores digitados pelo usuario e se estes fossem correctos, abriria o panel do menu principal.
É possivel ajudar-me com isso? Fico mais uma vez muito grato pela ajuda.

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por Marcos Guedes em 1/9/2009, 14:28

Estais usando tabelas dbf's ou outro tipo de Banco de Dados?

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por JDoria em 1/9/2009, 14:30

Sim, tabelas dbf

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por Marcos Guedes em 1/9/2009, 14:53

Estou lhe enviando dois forms como exemplo, utilizando a criptografia em MD5.

No form cadastro.scx você cadastra um novo login e senha.
E no form verifica.scx você confere se o login e senha são validados.

Por padrão deixei o login Programação Brasil e senha 123456
Se o login for validado será exibida uma mensagem com o texto "APROVADO".
Em sua aplicação, bastará mudar o MESSAGEBOX, para a opção desejada!

Segue o link:
[Você precisa estar registrado e conectado para ver este link.]

Espero ter ajudado!
Very Happy

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por JDoria em 1/9/2009, 15:09

Ajudou bastante! Very Happy
Ja estava a começar a desesperar,muito obrigado pela ajuda, vou entao aplicar estes conhecimentos. E desculpa o incomodo

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por Marcos Guedes em 1/9/2009, 15:26

Sinta-se a vontade em perguntar, caso tenhas mais dúvidas.
Smile

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por JDoria em 1/9/2009, 15:50

Estou entao a tentar implementar o verificar cadastro no meu programa e esta a dar um erro no md5.
Vou mandar o print screen do mesmo:
[Você precisa estar registrado e conectado para ver este link.]

Poderia indicar-me que erro eu cometi? Eu a unica coisa que alterei em relaçao ao seu exemplo foi os nomes das tabelas e das textbox...


Última edição por JDoria em 1/9/2009, 15:52, editado 1 vez(es)

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por Marcos Guedes em 1/9/2009, 15:52

Podes enviar a modificação que fizestes?
Conforme a mensagem de erro, não estais enviando os valores no formato correto.

Para upload de arquivos, utilize a opção "Upload" no Menu! (Visível apenas para membros conectados.)

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por JDoria em 1/9/2009, 16:16

Peço desculpa mas acho que encontrei o erro, no exemplo, o login e a senha estao em free tables e no meu estao numa Database.
Entao o que deve estar mal é no botao de autenticar, onde se indica onde estao as tabelas com a informaçao.... Vou testar...

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por JDoria em 8/9/2009, 21:48

Agora encontrei outra dificuldade, para variar Razz

O cadastro ja funciona perfeitamente mas agora quero q atraves deste cadastro haja graus de acessibilidade.
Ou seja, eu no cadastro tenho agora para alem do login e da password uma outra combobox chamada "tipo" que pode ser:
-Administrador;
-Secretario;
-Auxiliar;
E dependente do "tipo" de cada pessoa que efectuar login, ele abre um menu (ou uma form) diferente.

Sei que tera a ver com IF
por exemplo:
SE login=login & tipo="adiministrador"
do form "menu_auxiliar.scx"
SE login=login & tipo="secretario"
do form "menu_secretario.scx"
SENAO
do form "menu_auxiliar"

Estou muito longe?´Poderia ensinar-me como isto se faz mesmo?
Muito obrigado, tem sido de grande ajuda, nem sei como agradecer

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por Marcos Guedes em 8/9/2009, 22:10

Não compreendi a diculdade, ainda!
Você já está conseguindo pegar os valores, correto?
Então após autenticar, ao invés de usar IF's use o DO CASE.

Seria algo do tipo:
1. Faça a autenticação dos usuários.
2. Guarde o valor do tipo de usuário.
3. Em seguida, se autenticado, faça:
Código:
DO CASE
CASE (tipo="adiministrador")
DO FORM "menu_auxiliar.scx"

CASE (tipo="secretario")
DO FORM "menu_secretario.scx"

OTHERWISE
*!* Se não for nenhum dos sugeridos acima
DO FORM "menu_auxiliar"

ENDCASE
Não sei se é bem isto que precisas.

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por JDoria em 8/9/2009, 22:44

No Cadastro tem a opçao "tipo" para preencher, mas depois no Verifica so quero que apareça o login e senha para preencher.

coloquei esse pedaço de codigo no fim do Verifica e deu-m um erro a dizer:
Variable 'TIPO' is not found

que devo fazer?

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por Marcos Guedes em 9/9/2009, 01:05

Posta o código completo!
Fica melhor de analisar como estais fazendo.

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por JDoria em 9/9/2009, 06:43

Entao ca estao os codigos do autentificar (verifica) e do registar(cadastro)

Autenticar:

IF ( EMPTY(THISFORM.txtlogin.VALUE) OR EMPTY(THISFORM.txtpassword.VALUE) ) THEN
MESSAGEBOX("Todos os campos são obrigatórios!")
RETURN
ENDIF

LOCAL objmd5 AS OBJECT
LOCAL login AS STRING
LOCAL pchave AS STRING
LOCAL autenticado AS logical

m.objmd5 = NEWOBJECT("md5", "md5.prg")
*!* Neste caso, não fará diferença se o usuário digitar o login em maiúsculo ou minúsculo
m.login = UPPER(ALLTRIM(THISFORM.txtlogin.VALUE))
*!* O usuário deverá digitar a senha exatamente como foi armazenada
m.pchave = ALLTRIM(THISFORM.txtpassword.VALUE)

*!* Criptografa o login do usuário
m.objmd5.tohash = m.login
*m.login = m.objmd5.COMPUTE()

*!* Criptografa a senha do usuário
m.objmd5.tohash = m.pchave
*m.senha = m.objmd5.COMPUTE()

*!* Abre a tabela em modo de leitura
USE "table1" IN SELECT("table1") NODATA NOUPDATE

*!* Localiza o registro na tabela
SELECT("table1")
GO TOP
LOCATE FOR login = m.login AND pchave = m.pchave
m.autenticado = FOUND()

USE IN SELECT("table1")

IF (m.autenticado) THEN
*!* Login e senha aceitos!
MESSAGEBOX("APROVADO!")
ELSE
*!* Usuário não cadastrado!
MESSAGEBOX("Login ou senha inválida!")
ENDIF


DO CASE
CASE (tipoutil="Adiministrador")
DO FORM "principalauxiliar.scx"

CASE (tipoutil="Secretario")
DO FORM "principalsecretaria.scx"

OTHERWISE
*!* Se não for nenhum dos sugeridos acima
DO FORM "principaladmin.scx"

ENDCASE



Registar:

IF ( EMPTY(THISFORM.txtlogin.VALUE) OR EMPTY(THISFORM.txtpassword.VALUE) OR EMPTY(THISFORM.txtnome.VALUE) OR EMPTY(THISFORM.txttipo.VALUE)) THEN
MESSAGEBOX("Todos os campos são obrigatórios!")
RETURN
ENDIF

LOCAL objmd5 AS OBJECT
LOCAL login AS STRING
LOCAL pchave AS STRING
LOCAL nomeutil AS STRING
LOCAL tipoutil AS STRING
LOCAL usuarioexiste AS logical

m.objmd5 = NEWOBJECT("md5", "md5.prg")
*!* Neste caso, não fará diferença se o usuário digitar o login em maiúsculo ou minúsculo
m.login = UPPER(ALLTRIM(THISFORM.txtlogin.VALUE))
*!* O usuário deverá digitar a senha exatamente como foi armazenada
m.pchave = ALLTRIM(THISFORM.txtpassword.VALUE)

m.tipoutil = UPPER(ALLTRIM(THISFORM.txttipo.VALUE))
m.nomeutil = UPPER(ALLTRIM(THISFORM.txtnome.VALUE))

m.objmd5.tohash = m.tipoutil


m.objmd5.tohash = m.nomeutil


*!* Criptografa o login do usuário
m.objmd5.tohash = m.login
**m.login = m.objmd5.COMPUTE()

*!* Criptografa a senha do usuário
m.objmd5.tohash = m.pchave
**m.senha = m.objmd5.COMPUTE()


*!* Abre a tabela em modo de leitura
USE "table1" IN SELECT("table1") NODATA NOUPDATE SHARED

*!* Localiza o registro na tabela
SELECT("table1")
GO TOP
LOCATE FOR login = m.login
m.usuarioexiste = FOUND()

*!* Fecha a tabela
USE IN SELECT("table1")

IF (m.usuarioexiste) THEN
*!* Login já foi cadastrados anteriormente!
MESSAGEBOX("O login já existe!")
ELSE
*!* Login não encontrado!

*!* Abre a tabela em modo de leitura
USE "table1" IN SELECT("table1") SHARED
*!* Cadastra o usuário no Banco de Dados
INSERT INTO table1 (login, pchave, nomeutil, tipoutil ) VALUES (m.login, m.pchave, m.nomeutil, m.tipoutil)
*!* Fecha a tabela
USE IN SELECT("table1")

MESSAGEBOX("Login registado com sucesso!")
ENDIF

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por Marcos Guedes em 9/9/2009, 10:30

Segue as modificações que fiz, acrescentei alguns comentários para tentar explicar.
Espero ter ajudado!
Smile
Código:
*!* *!* *!* *!* *!*
*!* Autenticar: *!*
*!* *!* *!* *!* *!*

IF ( EMPTY(THISFORM.txtlogin.VALUE) OR EMPTY(THISFORM.txtpassword.VALUE) ) THEN
   MESSAGEBOX("Todos os campos são obrigatórios!")
   RETURN
ENDIF

LOCAL objmd5 AS OBJECT
LOCAL login AS STRING
LOCAL pchave AS STRING
LOCAL autenticado AS logical
LOCAL tipoutil AS STRING

m.objmd5 = NEWOBJECT("md5", "md5.prg")
*!* Neste caso, não fará diferença se o usuário digitar o login em maiúsculo ou minúsculo
m.login = UPPER(ALLTRIM(THISFORM.txtlogin.VALUE))
*!* O usuário deverá digitar a senha exatamente como foi armazenada
m.pchave = ALLTRIM(THISFORM.txtpassword.VALUE)

*!* Criptografa o login do usuário
m.objmd5.tohash = m.login
m.login = m.objmd5.COMPUTE()

*!* Criptografa a senha do usuário
m.objmd5.tohash = m.pchave
m.senha = m.objmd5.COMPUTE()

*!* Abre a tabela em modo de leitura
USE "table1" IN SELECT("table1") NODATA NOUPDATE

*!* Localiza o registro na tabela
SELECT("table1")
GO TOP
LOCATE FOR login = m.login AND pchave = m.pchave

IF FOUND() THEN
   m.autenticado = .T.
   m.tipoutil = ALLTRIM(table1.tipoutil)
ENDIF

USE IN SELECT("table1")

IF (m.autenticado) THEN
   *!* Login e senha aceitos!

   *!* Observe que o campo "tipoutil" obteve valores em maiúsculo!
   *!* No seu caso dizia que a variável não foi definida pelo fato de você
   *!* ter fechado a tabela, mas em cima!
   DO CASE
      CASE (tipoutil="ADIMINISTRADOR")
         DO FORM "principalauxiliar.scx"

      CASE (tipoutil="SECRETARIO") && Verifique se realmente está sendo escrito desta forma, ou com acento!
         DO FORM "principalsecretaria.scx"

      OTHERWISE
         *!* Se não for nenhum dos sugeridos acima
         DO FORM "principaladmin.scx"
   ENDCASE
ELSE
   *!* Usuário não cadastrado!
   MESSAGEBOX("Login ou senha inválida!")
ENDIF

*!* *!* *!* *!* *!*
*!*  Registrar:  *!*
*!* *!* *!* *!* *!*

LOCAL objmd5 AS OBJECT
LOCAL login AS STRING
LOCAL pchave AS STRING
LOCAL nomeutil AS STRING
LOCAL tipoutil AS STRING
LOCAL usuarioexiste AS logical

*!* Valores que poderão ser armazenados no Banco de Dados
m.login = UPPER(ALLTRIM(THISFORM.txtlogin.VALUE)) && Neste caso, não fará diferença se o usuário digitar o login em maiúsculo ou minúsculo
m.pchave = ALLTRIM(THISFORM.txtpassword.VALUE) && O usuário deverá digitar a senha exatamente como foi armazenada
m.nomeutil = UPPER(ALLTRIM(THISFORM.txtnome.VALUE))
m.tipoutil = UPPER(ALLTRIM(THISFORM.txttipo.VALUE))

IF ( EMPTY(m.login) OR EMPTY(m.pchave) OR EMPTY(m.nomeutil) OR EMPTY(m.tipoutil) ) THEN
   MESSAGEBOX("Todos os campos são obrigatórios!")
   RETURN
ENDIF

*!* Instância da classe de criptografia MD5
m.objmd5 = NEWOBJECT("md5", "md5.prg")

*!* Criptografa o login do usuário
m.objmd5.tohash = m.login
m.login = m.objmd5.COMPUTE() && Esta linha é responsável pela criptografia!!!

*!* Criptografa a senha do usuário
m.objmd5.tohash = m.pchave
m.senha = m.objmd5.COMPUTE() && Esta linha é responsável pela criptografia!!!

*!* Abre a tabela em modo de leitura
USE "table1" IN SELECT("table1") NODATA NOUPDATE SHARED

*!* Localiza o registro na tabela
SELECT("table1")
GO TOP
LOCATE FOR login = m.login && ( Observe que da forma que você fez, usuários com o mesmo nome poderão ter logins diferentes! )
m.usuarioexiste = FOUND()

*!* Fecha a tabela
USE IN SELECT("table1")

IF (m.usuarioexiste) THEN
   *!* Login já foi cadastrados anteriormente!
   MESSAGEBOX("O login já existe!")
ELSE
   *!* Login não encontrado!

   *!* Abre a tabela em modo de leitura
   USE "table1" IN SELECT("table1") SHARED

   *!* Os campos login e senha devem ter exatamente 32 caracteres de espaço,
   *!* visto que estão criptografados com o MD5.
   *!* Em relação ao campo nome util e tipoutil, verifique o limite máximo que os valores poderão conter!
   *!* Ex: nomeutil C(50); tipoutil C(20)

   *!* Cadastra o usuário no Banco de Dados
   INSERT INTO table1 (login, pchave, nomeutil, tipoutil) VALUES (m.login, m.pchave, m.nomeutil, m.tipoutil)
   *!* Fecha a tabela
   USE IN SELECT("table1")

   MESSAGEBOX("Login registado com sucesso!")
ENDIF

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Autenticações

Mensagem por JDoria em 9/9/2009, 12:29

E exactamente isto que eu precisava, funciona as mil maravilhas! muito obrigado mais uma vez Very Happy

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum