Formulário de envio de e-mail Flash+PHP

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.

Esta entrada foi publicada em Flash, Tutoriais e marcada com a tag , , , . Adicione o link permanente aos seus favoritos.

2 respostas a Formulário de envio de e-mail Flash+PHP

  1. Ponce disse:

    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!

  2. Fellyph disse:

    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.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">