Precisa de um freelancer, códigos-fonte e exemplos completos? Bem-vindo(a) ao meu site. Além de realizar alguns serviços como freelancer eu tenho alguns códigos-fonte e exemplos completos de Java, Delphi, PHP, Python, C/C++, Hibernate, JPA, Spring, JSP, Servlets, Ruby, Ruby On Rails e muitas outras linguagens e frameworks. Veja como falar comigo clicando aqui.
Escrevendo um sistema de login
de usuários usando Flex + PHP
1 - Introdução
Uma das maiores vantagens do uso de Flex é que a aplicação
e boa parte do processamento das regras de negócios
podem ser feitas no cliente, ou seja, no browser do usuário.
Isso faz com que recursos do servidor web sejam poupados consideravelmente.
Contudo, há momentos em que a aplicação
Flex precisa obter ou enviar dados ao servidor web. Geralmente
isso é feito de forma assíncrona, de modo que
o usuário poderá continuar interagindo com a
aplicação enquanto requisições
são feitas nos bastidores.
Uma das formas mais comuns de acesso ao servidor web por parte
de uma aplicação Flex é por meio de RPC
(Remote Procedure Call - Chamada Remota de Procedimento).
Este artigo aborda a técnica usada para enviar dados
informados pelo usuário na aplicação
Flex para um programa PHP. O programa PHP, por sua vez, poderá
processar os dados recebidos e emitir uma resposta informando
o sucesso ou falha da operação.
2 - Descrição do projeto
A aplicação que escreveremos é um sistema
simples de login de usuários. O usuário informará
o nome de usuário e senha e clicará o botão
Acessar. Neste momento a aplicação Flex fará
uma chamada remota a um programa PHP enviando o nome de usuário
e senha por meio do método POST. Tão logo o
programa PHP seja executado, teremos uma janela de mensagem
informando se os dados informados estão corretos ou
incorretos.
Antes de prosseguirmos, veja abaixo a aplicação
Flex totalmente funcional. Experimente informar quaisquer
dados e finalmente informe "osmar" como nome de
usuário e "arquivo" como senha:
3 - O documento PHP
A melhor forma de realmente entender este projeto, é
começando pelo código PHP. Veja a sua simplicidade:
Veja que aqui nós testamos os valores das variáveis
$usuario e $senha. Se o teste for positivo, apenas escrevemos
"sucesso" no documento. Se for negativo, escrevemos
"erro". É claro que em uma aplicação
do mundo real, o nome de usuário e senha poderiam ser
verificados em uma base de dados. O importante aqui é
perceber que os dados que estamos escrevendo no documento estarão
visíveis à aplicação Flex quando
a chamada remota de procedimentos (RPC) retornar.
4 - O documento MXML
Como já sabemos de artigos anteriores, uma aplicação
Flex é descrita em um documento do tipo XML chamado MXML.
Neste documento podemos descrever o comportamento da aplicação
e também adicionar códigos ActionScript. Veja
a listagem:
Veja como definimos os valores "nome" e "senha"
para a propriedade id das duas caixas de texto.
Ao definir true para a propriedade displayAsPassword
da segunda caixa de texto, nós fazemos com que ela se
comporte como um campo de senha. Veja que, no evento click
do botão, nós fazemos uma chamada ao método
send() de um componente chamado login.
Vamos analisá-lo agora:
Aqui nós temos um componente do tipo HTTPService,
usado para as chamadas remotas de procedimento. Veja como definimos
a URL do documento PHP que será chamado, o método
a ser usado (POST), a função que será chamada
em caso de sucesso, a função que será chamada
em caso de falha e a forma de retorno, em nosso caso será
texto puro.
Os parámetros para o documento PHP são enviados
por meio de um componente request:
Veja que o documento PHP receberá variáveis chamadas
usuario e senha e seus valores
serão o conteúdo das caixas de texto nome
e senha.
Observe agora a função sucesso:
public function sucesso(event:ResultEvent):void{
var resultado:String = String(event.result);
if(resultado == "sucesso")
Alert.show("Login efetuado com
sucesso!", "Login");
else
Alert.show("Nome de usuário
ou senha não confere!", "Login");
nome.text = "";
senha.text = "";
}
Se a chamada remota ao documento PHP for feita com sucesso,
o texto enviado pelo documento PHP (vimos isso lá em
cima) será armazenado em event.result.
Tudo que temos a fazer é converter esse conteúdo
em uma variável do tipo String e efetuar alguns testes:
var resultado:String
= String(event.result);
5 - Hora de compilar e executar
Chegou a hora de compilar e testar. Veja os artigos anteriores
se você ainda tiver dificuldades em compilar, executar
ou colocar o resultado final em uma página HTML.
Uma advertência: Para que o exemplo funcione corretamente,
o documento PHP deverá ser chamado a partir do mesmo
domínio em que a aplicação Flex se encontra,
ou seja, o Flash Player aplica restrições de acesso
quando tentamos efetuar RPC usando domínios diferentes.
A mensagem de erro é bem parecida à exibida abaixo:
Todo o conteúdo deste site,
quando não devidamente observado, pertence a seus idealizadores
e não
poderá ser usado para outras finalidades senão estudo e
aprimoramento de técnicas de programação.
Certifique-se de ler asnotas legaisantes de proceder com
o acesso e leitura do
conteúdo disponibilizado nestas páginas.