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 27/09/2006 às 14:09


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 27/11/2008 às 16:14

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 23/10/2007 às 10:13

Obrigado pelo UP...


Envio de comentário:




  

Quarta, 22 de Outubro de 2014




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Guerreiro SEO


Capa do livro
Introdução à Arquitetura de Mainframe e ao Sistema Operacional z/OS


Capa do livro
Exame de Redes com NMAP





Hostnet

IMD