Nesse post vamos utilizar uma integração bastante popular envio de e-mail com flash+php para variar um pouco vamos trabalhar com o Flash Develop e Flash.
Vou explicar algumas Classes que vou utilizar nesse exemplo :
URLRequest
A classe por receber as informações HTTP, são passados informações de requisição para o métodos de classes como URLStrean, URLLoader, Loader e outras operações como upload…
URLVariables
O URLVariables classe permite a transferência de variáveis entre em aplicativo Flash e um servidor. URLRequest utiliza o URLVariables para agrupar suas variáveis.
Resumindo grosseiramente o URLVariables guardamos os dados , adicionamos no URLRequest e com ele fazemos as requisição, isso será mais fácil de entender com o exemplo 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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | package classes { //importamos as classes que vamos utilizar import flash.display.Shape; import flash.net.URLRequest; import flash.net.URLVariables; import flash.text.TextField; import flash.display.Sprite; import flash.net.URLRequestMethod; import flash.net.sendToURL; import flash.events.MouseEvent; /** * ... * @author Fellyph Cintra by fellyph.com.br/blog/ */ public class Mail extends Sprite { //definimos as variáveis que vamos utilizar nesse exemplo. public var requisicao :URLRequest = new URLRequest("http://www.seusite.com/mail.php"); public var variaveis :URLVariables = new URLVariables(); // na nossa requisição passamos o endereço onde está arquivo php com a função de enviar e-mail public var nomeIn :TextField; public var mailIn :TextField; // acima os campos de texto que irão receber os dados public var btEnviar :Sprite; // Em uma classe o construtor é sempre executado primeiro // Então sempre que quiser executar algo em uma classe jogue no construtor public function Mail() { btEnviar = new Sprite(); nomeIn = new TextField(); mailIn = new TextField(); criarBotao(); addChild(btEnviar); addChild(nomeIn); addChild(mailIn); //preparamos o campo para receber a informação nomeIn.type = "input"; // informamos que o campo será do tipo input "entrada" nomeIn.border = true; nomeIn.borderColor = 0x005500; nomeIn.width = 100; nomeIn.height = 20; nomeIn.x = 10; nomeIn.y = 20; // nas linhas anteriores definimos o tamanho e a posição do campo isso se // repete nas linhas seguintes mailIn.type = "input"; mailIn.border = true; mailIn.borderColor = 0x005500; mailIn.width = 100; mailIn.height = 20; mailIn.x = 10; mailIn.y = 45; btEnviar.x = 10; btEnviar.y = 70; btEnviar.buttonMode = true; btEnviar.addEventListener(MouseEvent.MOUSE_DOWN, enviar); // adicionamos o envento de click no botão } // essa função vamos trabalhar mais um pouco com TextField public function criarBotao():void { var conteudo:TextField = new TextField(); conteudo.text = " ENVIAR "; conteudo.border = true; conteudo.borderColor = 0x004400; conteudo.background = true; conteudo.backgroundColor = 0x00cc00; conteudo.selectable = false; // nas linhas acima adicionamos borda e backgroud ao TextField e // definimos que essa caixa de texto não poderá ser selecionada conteudo.height = 20; conteudo.width = 60; conteudo.textColor = 0xFFFFFF; btEnviar.addChild(conteudo); // por fim jogamos o TextField no Sprite btEnviar com addChild }; // nossa função enviar é chamada quando clicamos no nosso botão public function enviar(e:MouseEvent):void { // adicionamos as informações do campo de texto // na nossa URLVariables variáveis variaveis.email = mailIn.text; variaveis.nome = nomeIn.text; requisicao.data = variaveis; // adicionamos na nossa requisição requisicao.method = URLRequestMethod.POST; // definimos qual método utilizado sendToURL(requisicao); //passamos as informações } } |
O arquivo php fica da seguinte forma:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php // adicionamos as variáreis passadas pelo flash $email = $_POST['email']; $nome = $_POST['nome']; // definimos o e-mail que será enviado o email $para = "email.destino@gmail.com"; // o título do email $assunto = "CONTATO FORMULÁRIO PHP + FLASH"; $body = "nome : ".$nome."<br /> <br /> email : ".$email; // e chamamos nossa função de e-mail ela fica dentro de um if porque retorna um // Boolean, true se a imagem foi enviada e false, se ocorreu algum erro if(mail($para,$assunto, $body)){ echo("Mensagem enviada com sucesso"); }else{ echo("Erro no envio"); } ?> |
Nesse exemplo foi bem resumido, mas podemos tratar mais esse caso. Pode ser feito uma validação dos campos e um status , para ter a confirmação do envio dos dados, isso fica para um próximo post.
Até a próxima.
Grande PH !!
O ruim do sendToURL é que ele nao tem retorno … tu podia usar o URLLoader, por que ai tu envia parametros, e retorna alguma coisa pro flash .. eu acho mais legal ! =D
Abraço!
E ae Ponce valeu pela dica. no final do post eu falo que vou fazer outra versão com reposta. Ai vai rolar o URLLoader.