Como criar uma página de login


Autor/fonte: Ricardo Doi



Digg del.icio.us

Para criar uma página de login, vamos falar sobre uma técnica muito interessante e peculiar do desenvolvimento de aplicações web, as páginas recursivas.

Como você já deve conhecer de outras linguagens, recursividade é um método de repetição (loop) onde uma função chama a si mesma até que uma determinada condição seja satisfeita. De mesma forma, páginas recursivas são páginas que chamam a si mesmas.

Pensando bem, essa recursividade é um ótimo exemplo da diferença entre a programação estruturada e da programação de aplicações web.

Suponha que você tenha uma página com um conteúdo restrito, que só deverá ser exibido após a confirmação do usuário e senha. Com a programação estruturada convencional, isso seria facilmente resolvido com um bloco de código do tipo Do While Valida_Campos(). Acompanhe mais abaixo como você resolveria um loop de validação de usuário com uma página MSP.

Nesse exemplo usaremos um arquivo de dados DBF chamado usuarios.dbf, com os campos NOME e SENHA, ambos de tipo caracter:

<HTML>
<%
//
// Página login.msp
//

// Primeiro recolhe os dados submetidos `a pagina
cUsuario:= MSPFieldValue("USUARIO")
cSenha:= MSPFieldValue("SENHA")

// Abre o banco de dados "Usuarios"
// com o indice Nomes
//(indexado previamente pelo campo NOME)
USE Usuarios INDEX IndUsuario
if ! USED()
? "ERRO: Não conseguiu abrir arquivo"
quit
endif

// Localiza o nome de usuario
SEEK cUsuario

// Testa se os dados submetidos sao validos
if ! Found() or usuarios->senha != cSenha

// Se o nome de usuario nao for encontrado
// ou a senha associada nao coincidir,
// exibe o formulario de entrada de dados
// para uma nova tentativa.
%>

Forneça-nos seu nome de usuário e senha:<BR>
<BR>
<FORM ACTION="login.msp">
Usuário: <INPUT TYPE="Text" NAME="USUARIO"><BR>
Senha : <INPUT TYPE="Text" NAME="SENHA"> <BR>
<BR>
<INPUT TYPE="Submit" NAME="Submit" Value="Login">
</FORM>

<%
ELSE
// Usuario e senha validados !
// Exibir conteudo normal.
%>
Seja benvindo <%= cUsuario %> !

<!-- Conteudo normal da sua pagina -->

<%
ENDIF
%>
</HTML>

O fundamento desta página é simples: Exibe o mesmo formulário de entrada de dados recursivamente (chamando a mesma página), até que um nome de usuário e a respectiva senha sejam validados. Se essa condição ocorrer, exibe o conteúdo normal.

Uma coisa interessante a notar é função MSPFieldValue(). A função retorna uma string com o valor relacionado ao campo de formulário submetido (em nosso exemplo, os campos input "USUARIO" e "SENHA"). Uma peculialidade desta função é que mesmo se os campos solicitados não forem efetivamente submetidos, a função retorna uma string vazia. Isso faz com que mesmo na primeira chamada da página (onde não é submetido nenhum dado), a condição de validação falhe e o formulário de entrada de dados seja exibido sem causar nenhum erro.




Enviado por xKuRt em


Avaliação

Esta publicação ainda não foi avaliada!


Avaliar:


A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.



Comentários

AvatarEnviado por LCoelho em

Ola,

preciso fazer um login automatico em uma pagina(www.aasp.org.br), seria seria mais ou menos igual esse seu codigo?

AvatarEnviado por Esperto007 em

Obrigado pelo UP...


Envio de comentário:




  

Terça, 25 de Julho de 2017




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Computação Gráfica: Processamento de Imagens Digitais - Volume 2


Capa do livro
Aprenda J2ee Em 21 Dias


Capa do livro
Segurança e Auditoria em Sistema de Informação





Hostnet

IMD