[TUTORIAL] formulário de email fácil em AS3 + PHP
Esse tutorial está postado em meu blog
Bom galera ai vai mais uma contribuição minha pra galera que gosta de trabalhar com flash.
Hoje vou ensinar como se faz um formulário de e-mail em flash + php.
Primeiramente vai necessitar do programa flash ou outro qualquer que faça as mesmas funções em AS3
Para esse tutorial são necessários os seguintes campos:
2 botões: um intânciado de btenviar outro btreset
4 campos de texto:
1 para nome intânciado nome.
1 para email instânciado email.
1 para mensagem intânciado mensagem.
1 para o status do e-mail intânciado stats.
Pronto já temos todos os campos necessários para o flash
Crie uma camada e coloque os 2 botões nela
Crie outra camada e coloque todos os campos de texto nela
Crie agora uma camada para o ActionScript
Na camada de action clique no primeiro frame e digite:
//Criando as variáveis necessárias
var loader:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest("mail.php"); //coloque no lugar de mail.php o nome de seu formulário php no caso o meu foi mail.php
var variables:URLVariables = new URLVariables();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
req.method = URLRequestMethod.POST;//fim
//Colocando o tabIndex para utilização de tab para mudar de campo
nome.tabIndex = 0;
email.tabIndex = 1;
mensagem.tabIndex = 2;//fim
//Colocando o listener para verificar os campos
nome.addEventListener(Event.CHANGE, vererro);
email.addEventListener(Event.CHANGE, vererro);
mensagem.addEventListener(Event.CHANGE, vererro);
function vererro(event:Event):void {
if (stats.text.length>0) {
stats.text = "";
}
}//fim
//Colocando os botões
btenviar.addEventListener(MouseEvent.CLICK, sendForm);
btreset.addEventListener(MouseEvent.CLICK, resetForm);//fim
//Valida o formulário e envia
function sendForm(evt:MouseEvent):void {
if (nome.text.length<=0) {
stats.text = "Por favor preencha o nome";
} else if (!email.text.length || email.text.indexOf("@") == -1 || email.text.indexOf(".") == -1) {
stats.text = "Email inválido ou inexistente";
} else if (mensagem.text==""||mensagem.text.length<=1) {
stats.text = "Por favor digite sua mensagem";
} else {
stats.text ="Enviando e-mail";
variables.nome = nome.text; //coloco dentrode variables os campos nome, email e mensagem.
variables.email = email.text;
variables.mensagem = mensagem.text;
req.data = variables; //Adiciono ao data do URLRequest as variáveis dos campos
loader.load(req); //Envio para o php
loader.addEventListener(Event.COMPLETE, receiveLoad); //Ao termino da leitura do php carrego a função de recebimento de variável.
}
}//fim
//Pega a informação carregada do php
function receiveLoad(evt:Event):void {
if (evt.target.data.retval == 1) { //Verifico se a variavel de retorno retval está com o valor 1 ou 0 e aplico as fuções
stats.text = "E-mail enviado";
} else {
stats.text="Erro ao enviar o e-mail";
}
}//fim
//Reseta formulário
function resetForm(evt:MouseEvent):void {
nome.text="";
email.text="";
mensagem.text="";
}//Fim
Todas as funções já estão devidamente comentadas ;)
Agora vamos ao php:
<?php
if(isset($_POST['email']) && isset($_POST['nome']) && isset($_POST['mensagem'])){
$nome = $_POST['nome'];
$from = $_POST['email'];
$mensagem = $_POST['mensagem'];
$email_subject = "E-mail do site"; // Assunto do e-mail
$email_to = "seuemail@mail.com"; // pra onde vai o e-mail
$headers = "From: ".$from;
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
$email_message = "Mensagem:". $mensagem. "<br>";
$email_message .= "\n\n--{$mime_boundary}\n";
$email_message .= "Content-Type:text/html; charset=\"iso-8859-1\"\n";
$email_message .= "Content-Transfer-Encoding: 7bit\n\n";
$email_message .= "Esse e-mail foi enviado pelo site<br>";
$email_message .= "<br>Nome do cliente:<br>". $nome. "<br>";
$email_message .= "<br>E-mail do cliente:<br>". $from ."<br>";
$email_message .= "<br>Mensagem:<br>" .$mensagem. "<br>" . "\n\n";
$ok = @mail($email_to, $email_subject, $email_message, $headers);
if($ok){
echo "retval=1";
}else{
echo "retval=0";
}
}
else {
echo "O e-mail não existe";
}
?>
Espero que gostem
Bom proveito e bom trabalho
Clique aqui para baixar o arquivo.
Abraços
Thiago Cruz(berseck)
Editado para trocar o empty por isset ;)
Discussão (30)
Carregando comentários...