leitura do artigo >

29
ago

Formulário AS3 + PHP

Este é um exemplo básico de formulário que usa apenas 4 caixas de texto. A partir dele, você pode fazer as modificações que desejar, tais como: criar mais campos de texto, usar combobox no lugar de caixa de texto, criar um código para validar o email, etc.

Comentários (3) Comentários(11) Categorias Action Script3, Destaques

Este é um exemplo básico que usa apenas 4 caixas de texto. A partir dele, você pode fazer as modificações que desejar, tais como: criar mais campos de texto, usar Combobox no lugar de caixa de texto, criar um código para validar o email, etc. Neste exemplo, vou criar as caixas de texto diretamente no palco para simplificar a explicação e enfocar a atenção no código de envio da informação, que é o mais importante neste caso.

Crie 4 caixas de texto com os nomes de instancia: nome, email, assunto e mensagem. Apenas mensagem vai ter habilitada a opção de multiline. Incorpore (embed) os caracteres que serão usados (recomendado: Maiúsculas, Minúsculas, Numerais, Pontuação, Latin I). Crie um botão com nome de instância enviar. Clique no palco e na barra de propiedades defina a DocumentClass como Form. Agora, abra um documento de Actionscript (*.as), salve como Form.as e coloque o código abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package {
 
    import flash.display.*;
    import flash.net.*;
    import flash.events.*
 
    public class Form extends MovieClip {
 
        var i:int;
        var loader:URLLoader = new URLLoader;
        var request:URLRequest = new URLRequest("form.php");
        var variaveis:URLVariables = new URLVariables();
        var campos:Array;
 
        public function Form() {
 
            campos = [nome, email, assunto, mensagem];
            mensagem.text = "";
 
            request.method = URLRequestMethod.POST;
            loader.addEventListener(Event.COMPLETE, loaderComplete);
            loader.addEventListener(IOErrorEvent.IO_ERROR, loaderError);
 
            enviar.addEventListener(MouseEvent.CLICK, enviarClick)
 
            function enviarClick(e:MouseEvent) {
                if ( (campos[0].text.length) && (campos[1].text.length) && (campos[2].text.length) && (campos[3].text.length)) {
 
                    variaveis.nome = nome.text;
                    variaveis.email = email.text;
                    variaveis.assunto = assunto.text;
                    variaveis.mensagem = mensagem.text;
                    request.data = variaveis;
                    loader.load(request)
 
                    enviar.removeEventListener(MouseEvent.CLICK, enviarClick)
 
                } else {
                    for (i=0; i < campos.length; i++ ) {
                        if (!campos[i].text.length) {
                            campos[i].text = "Preencha aqui";
                        }
                    }
                }
            }
 
            function loaderComplete(e:Event){
                trace("Mensagem enviada com sucesso.")
            }
            function loaderError(e:IOErrorEvent){
                trace("Ocorreu um erro.")
            }
 
        }
    }
}

Feito isso, abra o Bloco de Notas ou qualquer outro editor de texto, salve o documento como form.php e coloque o código abaixo:

<?php
 
	$nome = $_POST["nome"];
	$email = $_POST["email"];
	$assunto = $_POST["assunto"];
	$mensagem = $_POST["mensagem"];
 
	$recipient = "email@dominio.com";
 
	$ip = $_SERVER['REMOTE_ADDR'];
 
	utf8_decode($nome);
	utf8_decode($email);
	utf8_decode($mensagem);
	utf8_decode($assunto);
 
	$cabecalho  = "MIME-Version: 1.0\r\n";
	$cabecalho .= "Content-type: text/html; charset=utf-8\r\n";
	$cabecalho .= "Reply-to: ".$_POST['email']."\r\n";
	$cabecalho .= "From: ".$_POST['nome']." <".$_POST['email'].">";
 
	$subject = "Contato: ".$assunto;
 
	$msg = "<b>Nome:</b> $nome\n<br /><b>Email:</b> $email\n<br /><b>Mensagem:</b> $mensagem\n<br /><b>IP:</b> $ip\n";
 
	mail($recipient, $subject, $msg, $cabecalho);
 
?>

Antes de salvar e fechar, mude a linha $recipient = “email@dominio.com”; colocando entre as aspas o email ao qual deseja que a informação seja enviada.

Nota: a linha mensagem.text = “”; do ActionScript foi adicionada porque por alguma estranha razão (bug?) ao deixar a caixa de texto como multiline, inicialmente o Flash não considera o conteúdo do texto como nulo.

Exemplo de Formulário
Baixado 411 vezes
Tamanho 7.99 KB
Clique para fazer o download

Postado em 29-08-2009 por Igor Amendola
em Action Script3, Destaques

Share/Save/Bookmark

Comentários

  • Eder Lima disse:
    em 2 de setembro de 2009

    Muito bom Igor!

    O pessoal tá sempre procurando por formulários e é uma ótima idéia disponibilizar um exemplo aqui.

    :)

  • Sandro Oliveira disse:
    em 3 de setembro de 2009

    se não me falha a memória, os campos input com multi-linha só nao ficam vazias quando embedadas, quando não estao embedadas elas ficam com o valor vazio mesmo, me corrigam se eu estiver enganado.

    quanto ao php acho masi dinamico fazer desta maneira:
    http://pastebin.com/fa959c53

    e receber a variavel dizendo se foi enviado ou nao pelo php, a partir dai gerar uma mensagem ao usuario.
    fica ai a minha dica.

  • Sandro Oliveira disse:
    em 3 de setembro de 2009

    desculpe pelos erros de ortografia. :P

  • Sandro Oliveira disse:
    em 3 de setembro de 2009

    esqueci de corrigir o charset do header do email tembém:
    http://pastebin.com/d2b1b16ee

    #fail

  • Igor Amendola disse:
    em 7 de setembro de 2009

    sandro… abri o arquivo q botei pra download e percebi q esqueci de embedar… huhhu… ou seja, multiline da bug com ou sem embed… enfim, brigado pq senao nao teria visto q esqueci isso e tb brigado pela dica do php… quem puder dar mais dicas, fique à vontade :D

  • Lucas disse:
    em 11 de setembro de 2009

    Olá Igor. Estou caçando na net um formulario de Flash + PHP que dê certo há dias. Tentei usar esse seu exemplo no servidor (Locaweb) e ele não funcionou. Só alterei o e-mail, gerei o swf e coloquei os arquivos no servidor (swf, as e php) e não funfou, como faz??

    Obrigado.
    []’s

  • Eder Lima disse:
    em 11 de setembro de 2009

    Lucas.
    Eu testei o formulário e funciona perfeitamente na Locaweb. Leva uns 5min, mas o e-mail chega, sem necessidade de nenhuma configurção diferente.

  • Lucas disse:
    em 20 de setembro de 2009

    Eder e Igor,

    Eu testei novamente e funfou. Aquele dia não sei se fiz alguma coisa errada e talz. Fiquei encabulado e decidi tentar de novo e foi.

    Parabéns pelo tutorial, muito obrigado.

    Abraços.

  • Sérgio disse:
    em 28 de setembro de 2009

    Tentei colocar o formulário a funcionar mas ele nem procede ao envio. Será que pode tentar verificar onde se encontra o erro?

  • Eder Lima disse:
    em 28 de setembro de 2009

    Sérgio.
    Seja um pouco mais específico, que erro ocorre?

    Esse formulário funciona “from the box”, ou seja, basta alterar o endereço de e-mail e hospedar no servidor.
    “Procurar um erro” no formulário que funciona é difícil.

    Verifique se você configurou corretamente o endereço de e-mail e claro, se seu servidor oferece o suporte adequado.

  • Pedro Lins disse:
    em 26 de janeiro de 2010

    Os arquivos para download estão trocados.
    Estão vindo com o post do Eder de consulta do Cep.

    :x

 Escreva um Comentário

Seu nome

E-mail (não será publicado) (obrigatório)

Website

Comente

Security Code: