Formulário E-mail Flash+PHP

Olá comunidade.

Hoje, irei a mostrar a vocês como criar um formulário de E-mail usando PHP e Flash. Irei mostrar como criar esse formulário para os usuários do ActionScript 2 e do ActionScript 3.

Pré requisitos para esse tutorial:

  • Flash CS3 usando ActionScript 3, Flash 8 ou Flash MX 2004
  • Conhecimento básico de ActionScript 2 ou 3
  • Servidor que de suporte a PHP e a função Mail

Criação do PHP

Antes de chegarmos a criação de nosso arquivo PHP, vocês precisam verificar se o servidor em que usam dá suporte a função mail do PHP. Para verificar isso, basta criar um arquivo PHP usando a função mail, como no exemplo abaixo:

<?php
mail(“seu email@dominio.com.br”, “assunto”, “mensagem”);
?>

Após a criação desse arquivo, hospedem ele em seu servidor visualize ele em seu browser. Se ao abrir o arquivo, nenhuma mensagem aparecer você tem suporte a função mail do PHP e pode criar um formulário, se aparecer alguma mensagem de erro vocês não poderão criar o formulário. A imagem a seguir mostra o erro que é exibido pelo PHP quando não tem suporte a função mail.

Mensagem de erro

Vocês podem estar se perguntando, porque tem servidor que não dá suporte a função mail do PHP. Simples, controle contra SPAM. Existem vários usuários que aproveitam para ficar enviando mensagens sem que nós tenhamos conhecimento.

Aos que podem usar a função, vamos a criação do arquivo PHP que vai receber os dados vindos do Flash e enviar o E-mail. Salvem esse arquivo com o nome de contato.php.

<?php
/* Valores enviados pelo Flash */
/* Para esse tutorial irei enviar 5 valores */
/* Fiquem livres a enviar quantos valores quiserem */
$nome = utf8_decode(@$_POST['nome']);
$email = utf8_decode(@$_POST['email']);
$cidade = utf8_decode(@$_POST['cidade']);
$assunto = utf8_decode(@$_POST['assunto']);
$mensagem = utf8_decode(@$_POST['mensagem']);
$news = utf8_decode(@$_POST['news']);
$programas = utf8_decode(@$_POST['programas']);
/* Coloquem seu E-mail aqui */
$para = “seu email@dominio.com.br”;
/* Aqui uma pequena verificação para evitar que enviem E-mails sem valores */
if ($nome != “” && $email != “” && $cidade != “” && $assunto != “” && $mensagem != “”) {
/* Montamos o E-mail */
/* Criei um exemplo bem simples de E-mail usando HTML */
/* Fiquem livres para modificar conforme desejam */
$corpo = ‘<html><head><title>’.$assunto.’</title></head><body>’;
$corpo .= ‘Nome: ‘.$nome.’<br />E-mai: ‘.$email.’<br />Quer receber a Newsletter: ‘.$news.’<br />’;
$corpo .= ‘Programas usados: ‘.$programas.’<br />’;
$corpo .= ‘Cidade: ‘.$cidade.’<br />Assunto: ‘.$assunto.’<br />Mensagem: ‘.$mensagem;
/* Aqui modificamos o tipo de E-mail para o formato HTML */
$headers = ‘MIME-Version: 1.0′ . “\r\n”;
$headers .= ‘Content-type: text/html; charset=iso-8859-1′ . “\r\n”;
/* Aqui mudamos o cabeçalho para exibir o E-mail de quem enviou */
$headers .= ‘From:’. $email . “\r\n”;
/* Por fim enviamos o E-mail com os dados recebidos do Flash */
mail($para, $assunto, $corpo, $headers);
/* Retornamos um Ok para o Flash */
print ‘erro=0′;
/* Caso os campos não sejam preenchidos */
} else {
/* Retorna o erro ao Flash */
print ‘erro=1′;
}
?>

Pulando para o Flash

Chegou a hora de ir para o Flash. Como disse no começo do tutorial, esse tutorial serve tanto para usuários do ActionScript 3 quanto para usuários do ActionScript 2. Para esse tutorial começarei com um palco de tamanho 470×300, criem duas camadas, ações e objetos.

Disposição camadas

Montem o layout que preferir para o Formulário, a quantidade de campos é livre, assim como o uso de Componentes. Vou aproveitar esse tutorial e mostrar como usar os Componentes ComboBox, CheckBox e RadioButtons. O layout que montei está abaixo, as linhas em vermelho são as instancias dos objetos, lembre-sem de colocar os objetos no primeiro frame da camada objetos.

Instancias dos objetos

Os botões possuem instancia de limpar_btn e enviar_btn respectivamente. Os CheckBoxs possuem instancia de dream_ch, fire_ch, flash_ch, illus_ch e photo_ch respectivamente.

Com os nossos objetos no palco, vamos ao ActionScript. Primeiro, aos usuários que usam o ActionScript 2. Colem as ações abaixo no primeiro frame da camada ações:

 /* Criamos um Array para preencher o ComboBox cidades */
var cidades:Array = ["São Paulo", "Rio de Janeiro", "Belo Horizonte", "Porto Alegre", "Outra cidade"];
/* Preenchemos o ComboBox com os valores do Array */
cidade_cb.dataProvider = cidades;
/* Criamos um Array para preencher o ComboBox assunto */
var assunto:Array = ["Dúvidas", "Sugestões", "Elogios", "Reclamações", "Outros"];
/* Preenchemos o ComboBox com os valores do Array */
assunto_cb.dataProvider = assunto;
/* Criamos uma variável para armazenar os valores do CheckBox selecionados */
var programas:String = new String();
/* Criamos uma instancia para a Classe LoadVars */
var envia:LoadVars = new LoadVars();
/* Ao clicar do botão enviar */
enviar_btn.onPress = function() {
   /* Verifica se preencheu o campo nome */
   if (nome_txt.text == "") {
      /* Mostra a mensagem de erro */
      status_txt.text = "Preencha o campo Nome corretamente";
   /* Verifica se preencheu o campo email */
   } else if (email_txt.text == "") {
      /* Mostra a mensagem de erro */
      status_txt.text = "Preencha o campo E-mail corretamente";
   } else if ((email_txt.text.indexOf("@") == -1 || email_txt.text.indexOf(".") == -1)) {
      /* Mostra a mensagem de erro */
      status_txt.text = "Preencha o campo E-mail corretamente";
   /* Verifica se preencheu o campo mensagem */
   } else if (mensagem_txt.text == "") {
      /* Mostra a mensagem de erro */
      status_txt.text = "Preencha o campo Mensagem corretamente";
   /* Verifica se selecionou a opção sim ou opção não do RadioButton */
   } else if (sim.selected == false && nao.selected == false) {
      /* Mostra a mensagem de erro */
      status_txt.text = "Selecione Sim ou Não";
   /* Se tudo estiver ok */
   } else {
      /* Envia para o PHP a variavel nome com os dados do campo nome */
      envia.nome = nome_txt.text;
      /* Envia para o PHP a variavel email com os dados do campo email */
      envia.email = email_txt.text;
      /* Envia para o PHP a variavel cidade com o valor selecionado no ComboBox cidade */
      envia.cidade = cidade_cb.value;
      /* Envia para o PHP a variavel assunto com o valor selecionado no ComboBox assunto */
      envia.assunto = assunto_cb.value;
      /* Envia para o PHP a variavel mensagem com os dados do campo mensagem */
      envia.mensagem = mensagem_txt.text;
      /* Verifica se a opção sim foi selecionado no RadioButton */
      if (sim.selected == true) {
         /* A opção sim foi selecionada */
         /* Envia para o PHP a variavel news com o valor sim */
         envia.news = "sim";
      /* Verifica se  a opção não foi selecionado no RadioButton */
      } else if (nao.selected == true) {
         /* A opção nao foi selecionada */
         /* Envia para o PHP a variavel news com o valor não */
         envia.news = "não";
      }
      /* Verifica se o CheckBox Dreamweaver foi selecionada */ 
      if (dream_ch.selected == true) {
         /* A opção foi selecionada */
         /* Armazena na variável programas o valor Dreamweaver */
         programas = "Dreamweaver, ";
      }
      /* Verifica se o CheckBox Fireworks foi selecionada */ 
      if (fire_ch.selected == true) {
         /* A opção foi selecionada */
         /* Armazena na variável programas o valor Fireworks */
         programas += "Fireworks, ";
      }
      /* Verifica se o CheckBox Flash foi selecionada */ 
      if (flash_ch.selected == true) {
         /* A opção foi selecionada */
         /* Armazena na variável programas o valor Flash */
         programas += "Flash, ";
      }
      /* Verifica se o CheckBox Illustrator foi selecionada */ 
      if (illus_ch.selected == true) {
         /* A opção foi selecionada */
         /* Armazena na variável programas o valor Illustrator */
         programas += "Illustrator, ";
      }
      /* Verifica se o CheckBox Photoshop foi selecionada */
      if (photo_ch.selected == true) {
         /* A opção foi selecionada */
         /* Armazena na variável programas o valor PhotoShop */
         programas += "Photoshop.";
      }
      /* Envia para o PHP a variavel programas o valor da variável programas */
      envia.programas = programas;
      /* Avisa que está mandando o E-mail */
      status_txt.text = "Enviando mensagem";
      /* Enviamos as variáveis ao PHP e carregamos a mensagem que vai vir do PHP */
      envia.sendAndLoad("http://localhost/contato.php", envia, "POST");
   }
};
/* Assim que o PHP for carregado */
envia.onLoad = function(ok) {
   /* Se carregou tudo certinho */
   if (ok) {
      /* Se deu tudo ok no PHP */
      if (this.erro == 0) {
         /* Chamamos a função limpa */
         limpa();
         /* Mostra mensagem de sucesso */
         status_txt.text = "Mensagem enviada com sucesso";
      } else {
         /* Mostra mensagem de erro */
         status_txt.text = "Erro ao enviar E-mail";
      }
   }
};
/* Ao clicar do botão limpar */
limpar_btn.onPress = function() {
   /* Chamamos a função limpa */
   limpa();
};
/* Função responsável por limpar os campos do formulário */
function limpa() {
   /* Zeramos a variável programas */
   programas = "";
   /* Apagamos os campos de texto */
   nome_txt.text = "";
   email_txt.text = "";
   mensagem_txt.text = "";
   status_txt.text = "";
   /* Voltamos a selecionar o primeiro item dos ComboBox */
   assunto_cb.selectedIndex = 0;
   cidade_cb.selectedIndex = 0;
   /* Deixamos os RadioButtons não selecionados */
   sim.selected = false;
   nao.selected = false;
   /* Deixamos os RadioButtons não selecionados */
   dream_ch.selected = false;
   fire_ch.selected = false;
   flash_ch.selected = false;
   illus_ch.selected = false;
   photo_ch.selected = false;
}

Agora para os usuários do ActionScript 3. Colem as ações abaixo no primeiro frame da camada ações.

/* Importamos a Classe DataProvider */
import fl.data.DataProvider;
/* Criamos um Array para preencher o ComboBox cidades */
var cidades:Array = ["São Paulo", "Rio de Janeiro", "Belo Horizonte", "Porto Alegre", "Outra cidade"];
/* Preenchemos o ComboBox com os valores do Array */
cidade_cb.dataProvider = new DataProvider(cidades);
/* Criamos um Array para preencher o ComboBox assunto */
var assunto:Array = ["Dúvidas", "Sugestões", "Elogios", "Reclamações", "Outros"];
/* Preenchemos o ComboBox com os valores do Array */
assunto_cb.dataProvider = new DataProvider(assunto);
/* Criamos uma variável para armazenar os valores do CheckBox selecionados */
var programas:String = new String();
/* Criamos uma instancia da Classe URLVariables */
var variaveis:URLVariables = new URLVariables();
/* Criamos uma instancia da Classe URLRequest */
var objEnvia:URLRequest = new URLRequest();
/* Criamos uma instancia da Classe URLLoader */
var objRecebe:URLLoader = new URLLoader();
/* Adicionamos um listener ao botão limpar */
limpar_btn.addEventListener(MouseEvent.MOUSE_DOWN, limparPress);
/* Função disparada quando se clica no botão limpar */
function limparPress(event:MouseEvent):void {
   /* Chamamos a função limpa */
   limpa();
}
/* Adicionamos um listener ao botão enviar */
enviar_btn.addEventListener(MouseEvent.MOUSE_DOWN, enviarPress);
/* Função disparada quando se clica no botão enviar */
function enviarPress(event:MouseEvent):void {
   /* Verifica se preencheu o campo nome */
   if (nome_txt.text == "") {
      /* Mostra a mensagem de erro */
      status_txt.text = "Preencha o campo Nome corretamente";
   /* Verifica se preencheu o campo email */
   } else if (email_txt.text == "") {
      /* Mostra a mensagem de erro */
      status_txt.text = "Preencha o campo E-mail corretamente";
   /* Verifica se preencheu o campo mensagem */
   } else if ((email_txt.text.indexOf("@") == -1 || email_txt.text.indexOf(".") == -1)) {
      /* Mostra a mensagem de erro */
      status_txt.text = "Preencha o campo E-mail corretamente";
   } else if (mensagem_txt.text == "") {
      /* Mostra a mensagem de erro */
      status_txt.text = "Preencha o campo Mensagem corretamente";
   /* Verifica se selecionou a opção sim ou opção não do RadioButton */
   } else if (sim.selected == false && nao.selected == false) {
      /* Mostra a mensagem de erro */
      status_txt.text = "Selecione Sim ou Não";
   /* Se tudo estiver ok */
   } else {
      /* Envia para o PHP a variavel nome com os dados do campo nome */
      variaveis.nome = nome_txt.text;
      /* Envia para o PHP a variavel email com os dados do campo email */
      variaveis.email = email_txt.text;
      /* Envia para o PHP a variavel cidade com o valor selecionado no ComboBox cidade */
      variaveis.cidade = cidade_cb.value;
      /* Envia para o PHP a variavel assunto com o valor selecionado no ComboBox assunto */
      variaveis.assunto = assunto_cb.value;
      /* Envia para o PHP a variavel mensagem com os dados do campo mensagem */
      variaveis.mensagem = mensagem_txt.text;
      /* Verifica se a opção sim foi selecionado no RadioButton */
      if (sim.selected == true) {
         /* A opção sim foi selecionada */
         /* Envia para o PHP a variavel news com o valor sim */
         variaveis.news = "sim";
      /* Verifica se  a opção não foi selecionado no RadioButton */
      } else if (nao.selected == true) {
         /* A opção nao foi selecionada */
         /* Envia para o PHP a variavel news com o valor não */
         variaveis.news = "não";
      }
      /* Verifica se o CheckBox Dreamweaver foi selecionada */
      if (dream_ch.selected == true) {
         /* A opção foi selecionada */
         /* Armazena na variável programas o valor Dreamweaver */
         programas = "Dreamweaver, ";
      }
      /* Verifica se o CheckBox Fireworks foi selecionada */
      if (fire_ch.selected == true) {
         /* A opção foi selecionada */
         /* Armazena na variável programas o valor Fireworks */
         programas += "Fireworks, ";
      }
      /* Verifica se o CheckBox Flash foi selecionada */
      if (flash_ch.selected == true) {
         /* A opção foi selecionada */
         /* Armazena na variável programas o valor Flash */
         programas += "Flash, ";
      }
      /* Verifica se o CheckBox Illustrator foi selecionada */
      if (illus_ch.selected == true) {
         /* A opção foi selecionada */
         /* Armazena na variável programas o valor Illustrator */
         programas += "Illustrator, ";
      }
      /* Verifica se o CheckBox Photoshop foi selecionada */
      if (photo_ch.selected == true) {
         /* A opção foi selecionada */
         /* Armazena na variável programas o valor PhotoShop */
         programas += "Photoshop.";
      }
      /* Envia para o PHP a variavel programas o valor da variável programas */
      variaveis.programas = programas;
      /* Avisa que está mandando o E-mail */
      status_txt.text = "Enviando mensagem";
      /* Dizemos que os dados a serem enviados está na variável variaveis */
      objEnvia.data = variaveis;
      /* Usaremos o método POST */
      objEnvia.method = URLRequestMethod.POST;
      /* Passamos o endereço a ser enviado */
      objEnvia.url = "http://localhost/contato.php";
      /* Dizemos que os dados serão do tipo texto */
      objRecebe.dataFormat = URLLoaderDataFormat.TEXT;
      /* Enviamos as variáveis ao PHP */
      objRecebe.load(objEnvia);
      /* Adicionamos um listener a variavel objRecebe */
      /* O listener será disparado quando terminar de carregar o arquivo PHP */
      objRecebe.addEventListener(Event.COMPLETE, onLoadRecebe);
   }
}
/* Quando o arquivo PHP for carregado */
function onLoadRecebe(event:Event):void {
   /* Recupera a mensagem que será enviada pelo PHP */
   var resultado:URLVariables = new URLVariables(event.currentTarget.data);
   /* Se deu tudo ok no PHP */
   if (resultado.erro == 0) {
      /* Chama a função limpa */
      limpa();
      /* Exibe mensagem de sucesso */
      status_txt.text = "Mensagem enviada com sucesso.";
   }
}
/* Função que limpa os campos do formulário */
function limpa() {
   /* Zeramos a variável programas */
   programas = "";
   /* Apagamos os campos de texto */
   nome_txt.text = "";
   email_txt.text = "";
   mensagem_txt.text = "";
   status_txt.text = "";
   /* Voltamos a selecionar o primeiro item dos ComboBox */
   assunto_cb.selectedIndex = 0;
   cidade_cb.selectedIndex = 0;
   /* Deixamos os RadioButtons não selecionados */
   sim.selected = false;
   nao.selected = false;
   /* Deixamos os RadioButtons não selecionados */
   dream_ch.selected = false;
   fire_ch.selected = false;
   flash_ch.selected = false;
   illus_ch.selected = false;
   photo_ch.selected = false;
}

Abaixo, um exemplo de como será o E-mail que você receberá por quem usar o formulário.

E-mail enviado

Considerações finais

Espero que tenha conseguido tirar a dúvida dos que sempre tentaram criar um formulário mas nunca conseguiam, o erro mais comum é não ter suporte a função mail do PHP, por isso não funcionavam achando sempre que o problema estava no Flash quando o problema era o PHP.

Gostaria de aproveitar a oportunidade e convidar todos os leitores a visitarem meu Portfolio Online, lá você poderão encontrar todos os meus trabalhos e tutoriais desenvolvidos: http://www.natanalves.com/

Um abraço a todos e até a próxima.

Autor: Natan D. Alves – Moderador do Fórum de Flash & ActionSctipt MXSTUDIO

Qualquer dúvida envie um e-mail para natanalves@mxstudio.com.br ou acesse nosso fórum

Escrito por Natan D. Alves on maio 1, 2008. Arquivado em Flash. Você pode seguir as respostas a esse artigo pelo RSS 2.0. Você pode deixar respostas para esse artigo

173 respostas a Formulário E-mail Flash+PHP

  1. Pingback: Blog Natan Alves » Novo tutorial

  2. Olá Natan, obrigado pelo post. postei uma duvida justamente sobre uma check box no mxstudio, e sua resposta funcionou aqui. Grande abraço e bom começo de semana.

  3. Cara.
    Não tenho nem o que dizer. Eu usava um form em flash mto fraquinho e sem mtas opções pois já havia desistido de procurar.
    Aí agora sem querer achei esse seu tuto que é fora do sério.

    Parabens.

  4. Olá Natan Td bem?
    Entao.. eu segui passo a passo no seu Tuto, que aliás está de parabéns!!! Porém tive um pequeno problema…
    Qdo jogo no servidor que (suporta PHP) e dou um “enviar” ele fica só a mensagem..
    “Enviando mensagem” então sai disso e se dou ctrl+enter no flash e faço o teste da a mensagem “Error opening URL “http://localhost/contato.php”..
    Saberia me dizer oq esta acontecendo?
    Brigadão!!!
    Abraço

  5. Akira, esse erro acontece porque você não tem instalado e nem configurado um servidor (como o Apache) em seu Computador para fazer testes sem ter que mandar seus arquivos PHP para seu servidor web. Portanto, localize a linha no Flash que contém o localhost e troque pelo endereço de onde está localizado seu arquivo PHP. Teste seu filme e veja se funciona.
    []s

  6. Natan!
    Obrigado pela ajuda… deu tudo certo aqui!!
    Valeu mesmo e parabéns!!!!

  7. Eae Natan td bem? Olha eu aqui de novo rs…
    Só pra tirar uma dúvida no PHP que eu não manjo nada, gostaria de saber se tem como arrumar os acentos no PHP, pois o e-mail chega com erros nos acentos.
    Se puder me ajudar.. agradeço!
    Valeu
    []´s

  8. Muito estranho Akira, no PHP eu já uso a função utf8_decode que mantém a acentuação, eu uso o mesmo código para o meu site e os E-mails que recebo chegam corretamente.
    Faz assim, abra o arquivo PHP no bloco de notas, vá em Arquivo, salvar como, e no campo Codificação selecione a opção UTF-8, salve seu arquivo e veja se funciona.
    []s

  9. Prezado Natan,

    O meu deu erro,eu já olhei e revisei o código,mas não deu certo.Quando eu clico no botão para enviar,ele mostra no status que está enviando e em seguinda dá erro.Eu uso o EasyPHP + Apache e o local que testo os arquivos é : http://localhost/form.html.Eu testo assim porque no flash eu publico para ficar com a extensão .html.

    Aguardo retorno.

  10. Olá Aislan, você não pode testar usando um arquivo HTML como arquivo a ser usado para enviar o E-mail, você tem que usar o arquivo PHP que passei no tutorial.
    Você testou usando o PHP que passei no tutorial?

    []s

  11. sim…testei com o que vc passou no tuto.

  12. Cara, primeiro parabenizar…tutorial muito bom mesmo, muito bem explicado.
    O meu único problema é que ele envia a mensagem, mas a mensagem no status_txt mostra que houve erro ao enviar…o que pode ser o problema?

  13. Aislan, meu e E-mail está no final do tutorial, você pode me mandar seus arquivos que eu dou uma olhada neles.

    Cacobala, você também pode me enviar seus arquivos que eu dou uma olhada e vejo o que pode estar errado.

    []s

  14. cara…consegui resolver…valeu =)…agora to só com uma dúvida, se eu jogar este formulário dentro de um MC o sendAndLoad não funciona…ele só funciona se estiver na cena mesmo…como eu resolvo isso?

  15. resolvido! era só acrescentar o _root antes do “envia”…:D valeu Natan.

  16. Olá! Parabéns pelo tutorial, é ótimo!! Mas to com um problema sério aqui: a mensagem não tá chegando no e-mail. acho que o problema está nos RadioButtons, porque quando eles não estão selecionados não aparece a mensagem no status_txt. Os nomes tão todos certos. A variável “news” que no meu caso eu mudei não deveria existir de algum jeito no formulário?

    Abraço!

  17. olá Natan! muito bom seu tuto, é fantastico. Estou com um pequeno problema, fiz tudinho passo a passo e hospedei no servidor e tudo, e na hora de enviar a mensagem, a mensagem nao envia e da o erro=1, quando clico em enviar da o “Erro ao enviar o email”. o que eu faço???
    abraço….

  18. O que pode ser quando com a mensagem que vem do flash para o email, vem um monte de lixo, informações sem sentido?

    Valeu!!

  19. Cristal, você pode me enviar seus arquivos que eu dou uma olhada o que pode estar errado.

    Marcos, qual versão do ActionScript você está usando? Se quiser pode me mandar seus arquivos que eu dou uma olhada.

    Diego, esse lixo seria o que, texto errado, ou alguma outra coisa?

    []s

  20. Olá Natan,

    Já testei o PHP e ele está retornando ok. Acontece que quando mando a mensagem pelo site ele avisa que houve erro ao enviar. A mensagem na verdade é enviada, mas sem reconhecer o radiobutton. O que devo estar fazendo de errado?

    :o (

  21. Olá Nathan,
    Parabéns pelo seu tutorial, é bem completo e até agora funcionou tudo bem, exceto por um aspecto: ao enviar a mensagem no arquivo flash (já no servidor, assim como o php), não sai do “enviando mensagem”.
    Eu já troquei o localhost pelo endereço completo do php, e ainda assim nao funciona. Você pode me ajudar?
    A proposito, o formulario do flash está em um swf externo ao arquivo principal que o chama por meio de um movie clip vazio. Pode ser esse o meu erro?
    Muito obrigada, desde já!

  22. Olá Tete, se não está reconhecendo o radio pode ser que eles não estejam instanciados corretamente. Quanto ao erro que o Flash exibe, você pode me enviar seus arquivos que eu dou uma olhada no que pode estar errado.

    Dragonfly, esse formulário funciona corretamente quando se carrega por outro swf, se o Flash não sai do carregando pode ter algum problema em seu PHP. Exeperimente abrir seu arquivo PHP no Browser e veja se aparece alguma mensagem de erro,

    []s

  23. boas, desde já felicito-o pelo excelente tutorial. Sendo eu amador em action script e o que sei fui aprendendo em tutos como esse. Gostaria de saber se consegue dar uma soluçao ao meu problema. o site que estou a fazer, é constituido por um principal e cada botão corresponde a um ficheiro flash externo que carrega na altura em que a pessoa clica no botão. este formulario é um desses botões só que como é chamado através de outro ficheiro as combobox não deixam selecionar outra cidade qualquer, e mesmo fazendo enviar diz sempre para preencher o campo, e mesmo assim não sei se consegue enviar. existe alguma forma de modificar isto sem ter que por o formulario no ficheiro principal. Muito agradecido desde ja.

  24. Boas, depois de muito lutar para descobrir qual o mal consegui resolver, mas de qualquer modo gostaria de saber a sua opinião. que eu fiz foi o seguinte. Calculei que houvesse algum tipo de conflito em relação ao root da timeline do filme principal e do root do filme que estava a carregar. depois de muito testr descobri que existe uma função chama _lockroot e bastou-me colocar no botão que chama o formulário uma linha tipo psc._lockroot = true; com isto deixei de ter qualquer tipo de conflito e o formulario que é carregado considera que ele é a root principal. Acho que é isso, pelo que percebi. Como antes havia dito, agradecia a opinião de alguém mais experiente do que eu. Obrigado pela ajuda mais uma vez.

  25. Fiz tudo como estava no tutoral, mas o email nunca chega ao destino, o posso ter errado ou o q pode estar acontecendo?

  26. Olá Natan, parabéns pelo tutorial, achei ótimo e bem didático. Só é uma pena que eu não tenha conseguido fazer funcionar, teria como você receber meus arquivos e dar uma breve olhada? desde já agradeço.

  27. Ainda não consegui . Deu mais de 30 errors

    Descriptions

    This type of quotation mark is not allowed in ActionScript. Please change it to a standard (straight) double quote.

    This type of quotation mark is not allowed in ActionScript. Please change it to a standard (straight) double quote.

    Syntax error.

    Statement block must be terminated by ‘}’

  28. arkarna, o lockroot funciona quando usa-se no ActionScript o _root de um arquivo que será carregado. No tutorial eu não usei nenhum _root para não ter esse problema, mas se está funcionando para você já vale.

    Cabavéi, você verificou se seu servidor dá suporte a função mail do PHP? Qualquer coisa você pode me enviar seus arquivos que eu dou uma olhada.

    Marcílio, você pode me enviar sim seus arquivos que eu dou uma olhada e vejo o que pode estar errado.

    hpc1979, esse erro é das aspas duplas. O sistema do WordPress usa uma aspa diferente que não é aceita pelo Flash, eu arrumei de novo o tutorial pois isso já tinha acontecido antes, estou brigando com o pessoal da administração para arrumar isso. Basta copiar e colar as ações de novo usando as aspas duplas corretas.

    []s

  29. Enviei os arquivos como vc solicitou, valeu mesmo.

  30. Parabéns pelo tutorial, estou fazendo ainda, não testei, só uma dúvida onde aparece status_txt….esse campo é um dinamico, static ou input?? vlw…

  31. Olá Rafael.

    Sim, esse campo de texto status_txt é um campo de texto dinamico.

    []s

  32. Natan, espero que possa me ajudar:

    Num campo para informar data de nascimento eu tenho 3 comboBox: o do dia, mês e ano.

    Sem ter que digitar todos aqueles números, pincipalmente para os anos e depois inserir nos comboBox, tem outro jeito?

    Em um form em PHP eu fiz assim:

    <?
    $dia = 1;
    while($dia<=31) {
    echo ‘Dia’;
    echo ‘$dia++’;
    echo ”;
    }
    $mes= 1;
    while($dia<=12) {
    echo ‘Mês’;
    echo ‘$mes++’;
    echo ”;
    }
    $ano = 1950;
    while($ano<=2008) {
    echo ‘Ano’;
    echo ‘$ano++’;
    echo ”;
    }
    ?>

    E deu certo. Agora eu só queria saber fazer isso em um Flash Form.

    Poderia me explicar? Obrigado!

  33. /\ Não saiu as tags HTML no meu post… XD

  34. Osmar, da mesma lógica qe você usou no PHP vai funcionar no Flash, a diferença é que para adicionar os itens no ComboBox você terá que usar a função addItem.

    []s

  35. Ah, tá…
    Mas como eu uso isso? XD

  36. olá natan…. camarada… quando clico em enviar aparece “mensagem enviado com sucesso” mais quando vou acessar minha caixa de emails não está lá! o que será que esta acontecendo!
    quando acesso os log do email aparece a seguinte mensagem!

    Discarding malformed message from sender: due to invalid From: header ()

  37. Ola, desculpe a ignorância, mas como podemos criar o PHP? O bloco de notas serve?

  38. Olá Natan, ótimo seu tutorial, parabéns, porém, quando clico no botão enviar nada acontece, já revisei o código todo e acho que não possui erro. O endereço arquivo.php que recebe os dados do flash também está correto, o que pode estar acontecendo?

  39. Ola. O formulário funciona perfeitamente como ilustrado no tutorial. Parabéns

    Agora surgiu uma dúvida. Estou com dificuldade para excluir ou inserir conteúdo no action script e no php. Fiz vários testes e não estou conseguindo.

    Alguem pode me ajudar em que parte do action script para devo inserir dados para criar campos de text imput ( em quais partes do action script)

    Em quais partes de php devo inserir ?

    Eu tentei inserir mas da a seguinte mensagem

    “Erro ao enviar email”

    Obrigado desde já….

  40. Eu fiz o formulario mais deu esses erros ai to tentando descobrir oque aconteceu se puder me ajudar agradeço

    **Error** Scene=Scene 1, layer=Ações, frame=1:Line 104: This type of quotation mark is not allowed in ActionScript. Please change it to a standard (straight) double quote.
    status_txt.text = “Mensagem enviada com sucesso”;

    **Error** Scene=Scene 1, layer=Ações, frame=1:Line 107: This type of quotation mark is not allowed in ActionScript. Please change it to a standard (straight) double quote.
    status_txt.text = “Erro ao enviar E-mail”;

    **Error** Scene=Scene 1, layer=Ações, frame=1:Line 119: This type of quotation mark is not allowed in ActionScript. Please change it to a standard (straight) double quote.
    programas = “”;

    **Error** Scene=Scene 1, layer=Ações, frame=1:Line 121: This type of quotation mark is not allowed in ActionScript. Please change it to a standard (straight) double quote.
    nome_txt.text = “”;

    **Error** Scene=Scene 1, layer=Ações, frame=1:Line 122: This type of quotation mark is not allowed in ActionScript. Please change it to a standard (straight) double quote.
    email_txt.text = “”;

    **Error** Scene=Scene 1, layer=Ações, frame=1:Line 123: This type of quotation mark is not allowed in ActionScript. Please change it to a standard (straight) double quote.
    mensagem_txt.text = “”;

    **Error** Scene=Scene 1, layer=Ações, frame=1:Line 124: This type of quotation mark is not allowed in ActionScript. Please change it to a standard (straight) double quote.
    status_txt.text = “”;

    Total ActionScript Errors: 7 Reported Errors: 7

  41. Fiz tudo certinho, retorna a mensagem de enviado com sucesso porém não chega nada

  42. Osmar, para aprender mais sobre o addItem dá uma olhada nesse tópico do Fórum do MXStudio:

    http://www.mxstudio.com.br/forum/index.php?showtopic=63270

    Jhonathas, esse erro eu não sei te dizer o porque, pela mensagem parece que é algum problema na formatação do header do E-mail e seu servidor pode estar bloqueando, teria que ver o que eles aceitam ou o que pode ser usado.

    Joao, você pode criar arquivos em PHP em qualquer programa de edição de texto como o bloco de notas e até mesmo o Word. É só salvar com a extenção .php.

    Sergio, você disse que nada acontece quando se clica no seu botão, você instanciou ele corretamente?

    hpc1979, acho melhor você postar essa dúvida no Fórum do MXStudio ou me mandar um E-mail, pois aqui não vai caber a minha resposta.

    Junior, esse erro é causado pelas aspas duplas que o WordPress usa, já tinha arrumado isso no tutorial e deveria estar normal, se copiar as ações novamente irá funcionar pois as aspas estão certas.

    Wesley, experimente usar outro endereço de E-mail para enviar a mensagem, talvez seu servidor esteja bloqueando o E-mail.

    Quem tiver dúvidas podem me mandar um E-mail ou usar o Fórum do MXStudio, por lá vocês terão uma resposta mais rápida.

    []s

  43. Ok Natan, fiz o teste coloquei 4 e-mails diferentes mas continua dando “Mensagem Enviada com Sucesso” mas nada chega, estou testado direto do meu domínio que fica hospedado na HOSTNET, preciso muito deste formulário queria utilizar somente 3 campos “Nome” “Telefone” “E-mail”, fiz o teste com este tuto pq se caso funcionasse eu mesmo modificaria para utilizar esses 3 campos mas não consegui, agradeço a atenção.

  44. Wesley, você deu uma confirmada se a função mail do PHP está habilitada em seu servidor, pode ser esse o seu problema. Entra em contato com o pessoal da Hostnet e veja o que eles tem a dizer a respeito de formulários, se precisa de algum outro código, etc.

    []s

  45. Olá. Parabéns pelo tutorial. estou tendo um problema que as variáveis do php estão vazias mesmo com todos os campos preenchidos. Você tem idéia de como resolver?

    Grata.

  46. Natan, meus parabéns cara. O primeir tutoria de envio de mensagem que consegui fazer sem problemas.

    Vc não tem noção o qto ajudou, meu portifóilio está um pouco desaualizado, sou mais focado no Design, se vc precisar de algo….estamos a disposição, um abraco.

    Fica com Deus.

  47. ta dando este erro no flash **Error** Scene=Scene 1, layer=Layer 2, frame=1:Line 92: This type of quotation mark is not allowed in ActionScript. Please change it to a standard (straight) double quote.
    envia.sendAndLoad(“http://localhost/contato.php”, envia, “POST”);

    e quando eu boto a pagina contato.php pra rodar no meu servidor da este errinho aqu…. erro=1

    tem como vc me da uma força aí Natan a minha versão de php é EasyPHP-2.0b1-setup que ela ja vem com um pacote de mysql, apache e php

  48. hum e quando eu aperto ctrl + enter, eu escrevo nos campos, e quando eu do um click no botão enviar ou limpar naum faz nada nem limpa e nem envia…. grato pela atneção Natan

  49. Opa Natan!
    ótimo tutorial, sempre uso ele. Porém estou querendo criar um com asp! Como faço?

    obrigado

  50. Oi Natan, fiz uma pequena modificação em seu formulário. Estou usando o comboBox para assunto, onde cada opção deveria enviar para um email diferente. Obviamente não me saio muito bem com PHP e simplesmente não consigo saber o que fazer. Além do PHP, também preciso mudar algo no AS?
    Desde já agradeço, TT

  51. Olá pessoal, segui o tudo direitinho…
    Mas estou com o mesmo problema que o ” cacobala ” a mensagem é enviada, mas no status aparece a mensagem de erro…
    Gostaria que ele me explicasse como ele arrumou o problema…
    ou se alguem poderia me ajudar….

    Aqui vai o código que estou usando::::
    flash:
    /* Criamos um Array para preencher o ComboBox cidades */
    var cidades:Array = ["Goiânia", "Aparecida de Goiânia", "Inhumas", "Anapolis", "Goianira", "Outra cidade"];
    /* Preenchemos o ComboBox com os valores do Array */
    cidade.dataProvider = cidades;
    /* Criamos uma variável para armazenar os valores do CheckBox selecionados */
    var programas:String = new String();
    /* Criamos uma instancia para a Classe LoadVars */
    var envia:LoadVars = new LoadVars();
    /* Ao clicar do botão enviar */
    enviar.onPress = function() {
    /* Verifica se preencheu o campo nome */
    if (nome_casal.text == “”) {
    /* Mostra a mensagem de erro */
    status_txt.text = “Preencha o campo Nick Casal corretamente”;
    /* Verifica se preencheu o campo nome */
    }else if (nome_marido.text == “”) {
    /* Mostra a mensagem de erro */
    status_txt.text = “Preencha o campo Nome Marido corretamente”;
    /* Verifica se preencheu o campo nome */
    }else if (nome_esposa.text == “”) {
    /* Mostra a mensagem de erro */
    status_txt.text = “Preencha o campo Nome Esposa corretamente”;
    /* Verifica se preencheu o campo nome */
    }else if (telefone.text == “”) {
    /* Mostra a mensagem de erro */
    status_txt.text = “Preencha o campo telefone corretamente”;
    /* Verifica se preencheu o campo email */
    } else if (email.text == “”) {
    /* Mostra a mensagem de erro */
    status_txt.text = “Preencha o campo E-mail corretamente”;
    } else if ((email.text.indexOf(“@”) == -1 || email.text.indexOf(“.”) == -1)) {
    /* Mostra a mensagem de erro */
    status_txt.text = “Preencha o campo E-mail corretamente”;
    /* Verifica se preencheu o campo mensagem */
    } else if (mensagem.text == “”) {
    /* Mostra a mensagem de erro */
    status_txt.text = “Preencha o campo Mensagem corretamente”;
    /* Verifica se selecionou a opção sim ou opção não do RadioButton */
    } else if (casados.selected == false && amaziados.selected == false && namorados.selected==false) {
    /* Mostra a mensagem de erro */
    status_txt.text = “Selecione Casados Amaziados ou Namorados”;
    /* Se tudo estiver ok */
    } else {
    /* Envia para o PHP a variavel nome com os dados do campo nome */
    envia.nome_casal = nome_casal.text;
    /* Envia para o PHP a variavel nome_marido com os dados do campo nome */
    envia.nome_marido = nome_marido.text;
    /* Envia para o PHP a variavel nome_esposa com os dados do campo nome */
    envia.nome_esposa = nome_esposa.text;
    /* Envia para o PHP a variavel telefone com os dados do campo nome */
    envia.telefone = telefone.text;

    /* Envia para o PHP a variavel email com os dados do campo email */
    envia.email = email.text;
    /* Envia para o PHP a variavel cidade com o valor selecionado no ComboBox cidade */
    envia.cidade = cidade.value;
    /* Envia para o PHP a variavel mensagem com os dados do campo mensagem */
    envia.mensagem = mensagem.text;
    /* Verifica se a opção casados foi selecionado no RadioButton */
    if (casados.selected == true) {
    /* A opção casados foi selecionada */
    /* Envia para o PHP a variavel news com o valor casados */
    envia.news = “casados”;
    /* Verifica se a opção amaziados foi selecionado no RadioButton */
    } else if (amaziados.selected == true) {
    /* A opção amaziados foi selecionada */
    /* Envia para o PHP a variavel news com o valor amaziados */
    envia.news = “amaziados”;
    /* Verifica se a opção namorados foi selecionado no RadioButton */
    } else if (namorados.selected == true) {
    /* A opção namorados foi selecionada */
    /* Envia para o PHP a variavel news com o valor namorados */
    envia.news = “namorados”;
    }

    /* Verifica se o CheckBox semanal foi selecionada */
    if (semanal.selected == true) {
    /* A opção foi selecionada */
    /* Armazena na variável programas o valor semanal */
    programas = “semanal, “;
    }
    /* Verifica se o CheckBox tematico foi selecionada */
    if (tematico.selected == true) {
    /* A opção foi selecionada */
    /* Armazena na variável programas o valor tematico */
    programas += “tematico, “;
    }
    /* Envia para o PHP a variavel programas o valor da variável programas */
    envia.programas = programas;
    /* Avisa que está mandando o E-mail */
    status_txt.text = “Enviando mensagem”;
    /* Enviamos as variáveis ao PHP e carregamos a mensagem que vai vir do PHP */
    envia.sendAndLoad(“http://localhost/contato.php”,envia,”POST”);
    }
    };
    /* Assim que o PHP for carregado */
    envia.onLoad = function(ok) {
    /* Se carregou tudo certinho */
    if (ok) {
    /* Se deu tudo ok no PHP */
    if (this.erro == 0) {
    /* Chamamos a função limpa */
    limpa();
    /* Mostra mensagem de sucesso */
    status_txt.text = “Mensagem enviada com sucesso”;
    } else {
    /* Mostra mensagem de erro */
    status_txt.text = “Erro ao enviar E-mail”;
    }
    }
    };
    /* Ao clicar do botão limpar */
    limpar.onPress = function() {
    /* Chamamos a função limpa */
    limpa();
    };
    /* Função responsável por limpar os campos do formulário */
    function limpa() {
    /* Zeramos a variável programas */
    programas = “”;
    /* Apagamos os campos de texto */
    nome_casal.text = “”;
    nome_marido.text = “”;
    nome_esposa.text = “”;
    telefone.text = “”;
    email.text = “”;
    mensagem.text = “”;
    status_txt.text = “”;
    /* Voltamos a selecionar o primeiro item dos ComboBox */
    cidade.selectedIndex = 0;
    /* Deixamos os RadioButtons não selecionados */
    casados.selected = false;
    amaziados.selected = false;
    namorados.selected = false;
    /* Deixamos os RadioButtons não selecionados */
    semanal.selected = false;
    tematico.selected = false;
    }

    php::::::::::::::::::::::::::::::::::::
    <?php
    /* Valores enviados pelo Flash */
    $nomec = utf8_decode(@$_POST['nome_casal']);
    $nomem = utf8_decode(@$_POST['nome_marido']);
    $nomee = utf8_decode(@$_POST['nome_esposa']);
    $telefone = utf8_decode(@$_POST['telefone']);
    $email = utf8_decode(@$_POST['email']);
    $cidade = utf8_decode(@$_POST['cidade']);
    $mensagem = utf8_decode(@$_POST['mensagem']);
    $news = utf8_decode(@$_POST['news']);
    $programas = utf8_decode(@$_POST['programas']);
    /* Coloquem seu E-mail aqui */
    $para = “e-mail@meu.com.br”;
    /* Aqui uma pequena verificação para evitar que enviem E-mails sem valores */
    if ($nomec != “” && $nomem != “” && $nomee != “” && $email != “” && $cidade != “” && $telefone != “” && $mensagem != “”) {
    /* Montamos o E-mail */
    /* Criei um exemplo bem simples de E-mail usando HTML */
    /* Fiquem livres para modificar conforme desejam */
    $corpo = ”.$nomec.”;
    $corpo .= ‘Nome Casal: ‘.$nomec.’Nome Marido: ‘.$nomem.’Nome Esposa: ‘.$nomee.’E-mai: ‘.$email.’Estado Civil: ‘.$news.”;
    $corpo .= ‘Enviar E-Mail dos Eventos: ‘.$programas.”;
    $corpo .= ‘Cidade: ‘.$cidade.’Telefone: ‘.$telefone.’Mensagem: ‘.$mensagem;
    /* Aqui modificamos o tipo de E-mail para o formato HTML */
    $headers = ‘MIME-Version: 1.0′ . “\r\n”;
    $headers .= ‘Content-type: text/html; charset=iso-8859-1′ . “\r\n”;
    /* Aqui mudamos o cabeçalho para exibir o E-mail de quem enviou */
    $headers .= ‘From:’. $email . “\r\n”;
    /* Por fim enviamos o E-mail com os dados recebidos do Flash */
    mail($para, $nomec, $corpo, $headers);
    /* Retornamos um Ok para o Flash */
    print ‘erro=0′;
    /* Caso os campos não sejam preenchidos */
    } else {
    /* Retorna o erro ao Flash */
    print ‘erro=1′;
    }
    ?>

  52. Caro Nathan, foi decisivo este exemplo excepcional de formulário. porem para em “A enviar mensagem” e não sai dai mesmo. Pus on-line os ficheiros e nada. Troquei no As2 a linha do local host também não consegui…se puder, por favor de-me ai uma maozinha.
    desde já agradecido.

  53. Olá Natan Otimo post.

    o q acontece é o seguinte:
    preencho todos os campos e tudo, quando mando enviar ele diz enviando mensangem e o flash player da o seguinte erro:

    Error #2044: Unhandled ioError:. text=Error #2032: Stream Error. URL: http://flaviodelima.ueuo.com/vivoli/contato.php
    at contato_fla::MainTimeline/contato_fla::frame1()

    O q pode ser isso?

  54. E a proposito, se eu faço o teste no pc ele da o mesmo erro, mesmo indicando o diretorio do arquivo php

  55. Pessoal, aqueles que estão com problemas com o tutorial me mandem um E-mail que eu ajudo sem problemas, responder as dúvidas por aqui não é o certo.

    []s

  56. Olá Natan.
    ótimo tuto e belo portfólio.
    eu não manjo nada de php e estou apanhando para criar um formlario Flash + php.

    Gostaria apenas dos campos Nome e Mensagem.
    Depois eu me afundaria mais.
    Se for possivel, mande por e-mail.
    Muito Obrigado.

  57. Olá Natan
    show de bola seu tutorial.
    estou tentando adaptar para o meu formulário, mas acho que algo está errado. Ele faz tudo certinho, mas quando clico em enviar, dá a mensagem status_txt Enviando Mensagem, mas nada acontece.
    Será que vc pode me ajudar?
    Meu script está assim:

    no PHP (salvo no Bloco de notas)
    <?php
    $nome=utf8_decode(@$_POST['nome']);
    $email=utf8_decode(@$_POST['email']);
    $empresa=utf8_decode(@$_POST['empresa']);
    $assunto=utf8_decode(@$_POST['assunto']);
    $mensagem=utf8_decode(@$_POST['mensagem']);
    $para=”wal@w2publicidade.com.br”;
    if($nome!=”"&&$email!=”"&&$assunto!=”"&&$mensagem!=”"){
    $corpo=”.$assunto.”;
    $corpo.=’Nome:’.$nome.’E-mail:’.$email.’;
    $corpo.=’Assunto:’.$assunto.’;
    $corpo.=’Mensagem:’.$mensagem.’;
    $headers=’MIME-Version:1.0′.”\r\n”;
    $headers.=’Content-type:text/html;charset=iso-8859-1′.”\r\n”;
    $headers.=’From:’.$email.”\r\n”;
    mail($para,$assunto,$corpo,$headers);
    print’erro=0′;
    }else{
    print’erro=1′;
    }
    ?>

    NO FLASH 8

    var envia:LoadVars=newLoadVars();

    enviar_btn.onPress=function(){
    if(nome_txt.text==”") {
    status_txt.text=”Por favor, preencha o campo Nome corretamente”;
    }else if(email_txt.text==”"){
    status_txt.text=”Por favor, preencha o campo E-mail corretamente”;
    }else if(mensagem_txt.text==”"){
    status_txt.text=”Por favor, preencha o campo Mensagem corretamente”;
    }else{
    envia.nome=nome_txt.text;
    envia.email=email_txt.text;
    envia.assunto=assunto_txt.text;
    envia.empresa=empresa_txt.text;
    envia.mensagem=mensagem_txt.text;
    status_txt.text=”Enviando mensagem”;

    envia.sendAndLoad(“http://localhost/contato.php”,envia,”POST”);
    }
    };

    envia.onLoad=function(ok){
    if(ok){
    if(this.erro==0){
    limpa();
    status_txt.text=”Mensagem enviada com sucesso”;
    }else{
    status_txt.text=”Erro ao enviar E-mail” }
    }
    };

    limpar_btn.onPress=function(ok) {

    limpa();
    };
    function limpa(){
    nome_txt.text=”";
    empresa_txt.text=”";
    assunto_txt.text=”";
    email_txt.text=”";
    mensagem_txt.text=”";
    status_txt.text=”";
    }

  58. Thiago, tente fazer o tutorial e qualquer coisa pode me mandar seus arquivos no meu E-mail que eu te ajudo sem problemas.

    Olivia, o endereço do seu arquivo PHP é qual? O localhost só funciona quando testado localmente, se você hospedar o arquivo PHP em seu servidor você tem que passar o caminho dele no lugar do localhost.

    []s

  59. Olá Natan! Muito bom o tuto!
    Estou com um erro ao enviar o email, pode me ajudar?
    Mandei email pra ti hoje com os detalhes.

    Obrigada!

  60. Opa cara otimo tutorial em
    so que nunca chega o email
    ja testei o servidor e ele nao da nenhum erro
    entao ele aceita enviar email

    te mandei o email com os codigo se puder olhar agradeco

    valew

  61. cara! Parabéns pelo tutorial, é ótimo!!

    em as2 tudo certinho

    em as3 só da erros no compiler….

  62. Olá Natan!

    Obrigada pela ajuda, eu não havia corrigido todas as aspas do php… Agora tudo ok!
    Vlw!

  63. Opa!
    Em primeiro lugar parabens, muito bom.
    O formulario que fiz com sua ajuda funcionou, mas junto com o email vem um monte de codigo sem sentido, ficando dificil entender o conteudo do email.
    Tem alguma sujestão?

    Att: Diego

  64. ola Natan tu pode me mandar o arquivo fla do teu formulario achei show de bola mas nao estou conseguindo faze-lo, se alguem puder me mandar meu e-mail cassiano@onaissac.com.br
    abraço!

  65. ola Natan

    Será que me podias enviar os ficheiros??

    Obrigado

  66. ola Natan

    Será que me podias enviar os ficheiros??

    Obrigado

    sergio_pereirinha@portugalmail.com

  67. Boas.

    O meu ja esta funcionando bem, mas o mail aparece todo desformatado. Que esta acontecendo?

  68. Tenho montado e funcionando um Quiz em Flash Action Script 2. Acontece que não necessito de formulário para colher os dados. Já tenho os dois dados de que preciso carregados em dois LABELS. Um com instância COD e o outro com instância INF. GOSTARIA QUE O CONTEÚDO DESTES DOIS LABELS FOSSEM ENVIADOS PARA O MEU EMAIL. Como fazer? Não é mais simples?

  69. Natan… caraa… não funcionou o meu form aki cara… não sei o que eu fiz de errado.. ja revi tudo e acompanhei so comentarios aki, teria como vc me passar o seu arquivo FLA… meu e-mail é designer@robsonfranzoi.com.br , to precisando muitoo caraa… valeu

  70. Natan, não funcionou o meu formulário, não sei o que eu fiz de errado. Revisei tudo e sempre dá o mesmo erro quando compilo:

    **Error** Scene=Scene 1, layer=Ações, frame=1:Line 31: ‘)’ expected
    } else if (sim.selected == false && nao.selected == false) {

    Total ActionScript Errors: 1 Reported Errors: 1

    Teria como vc me passar o seu arquivo FLA… meu e-mail é marcelo_lunas@hotmail.com

    Agradeço desde já!

  71. Natan, funcionou quase perfeitamente a questão foi que as mensagens estão caído como spans no meu Outlook, alguma sugestão?
    Obrigado

  72. Natan, to com um problema nesta parte

    envia.sendAndLoad(“http://localhost/contato.php“, envia, “POST”);
    da um erro na } por que o final fica comentado.
    ai tirei as aspas duplas e coloquei simples assim

    envia.sendAndLoad(“http://localhost/contato.php“, envia, “POST”);

    ai me retorna o seguinte erro:

    Error opening URL ‘http://localhost/contato.php‘ pode me ajudar?

  73. Olá!!
    Não consegui !
    Fiz tudo direitinho e não funciona.
    Existe alguma possibilidade de me enviar os arquivo fla?
    Te agradeço desde já.
    Abraço forte!

  74. Parabens….

    Ainda estou testando meu site e claro ele esta com uns bugs, porem o mais grosso acrdito eu que foi arrumar uma noção para fazer o formulario flash + php. Existe muitos artigos pela net, porem nenhum funcionou direitinho e como eu num pretendo CRT+C CRT+V então fica ruim ficar tentando miçhoes de vezes em noites mal durmidas. Mas é isso ae valew pelo post ajudou horrores… Suceso.

  75. EXCELENTE TUTURIAL
    Faz algum tempo que estava procurando uma maneira de fazer um formulário em flash de maneira fácil e confiável, entrei em grandes site como esse e tudo que achei foi lixo atrás de lixo.
    O seu tutorial foi perfeito, simples rápido funcional, ainda chamo a atenção para o seu cuidado de testar se os recursos usados no PHP são suportado no servidor o que é fundamental e que NENHUM tutorial que vi teve o cuidado de fazer o teste.
    Parabéns pelo seu trabalho daqui por diante você ganhou mais um admirador de seu trabalho e passarei a acompanhar com mais freqüência os seus tutoriais.

  76. Natan eu consegui fazer funcionar perfeitamente. Porém agora estou a inserir o mesmo formulário dentro de um MC existenta na minha página. e infelizmente não posso colocar fora de MC. Onde eu altero as informações para que funcione:

    var cidades:Array = ["São Paulo", "Rio de Janeiro", "Belo Horizonte", "Porto Alegre", "Outra cidade"];

    (((_root.geral_mc.circulo.))))cidade_cb.dataProvider = cidades;
    é só aqui em todos os campos?????? Obrigado!

  77. Natan, boa noite!

    Seu tutorial é ótimo. Só uma dúvida.
    é possivel usar só a parte de cadastro e descadastro dos e-mails tipo “newsletter”?

    Abraços,

    Robson Ramalho

  78. Natan, excelente o seu tutorial, parabéns pelo trabalho!!
    Gostaria, se possível, que você montasse um tutorial, seu, mostrando como fazer uma conexão flash, php e mysql, agradeço antecipadamente.

  79. O tutorial que pedi da interação flash, php e mysql, poderia ser feito com inclusão, consulta, alteração e exclusão?

  80. oi cara tudo bom, em primeiro lugar o seu site é muito bom uns dos melhores que ja vi,
    outra coisa , eu fiz tudo cetinho a menssagem chegar para mim normal no meu email ,mas chega tudo em branco , só chega o formulario em branco vc sabe o que aconteceu???

  81. Olá Natan,

    Seu tutorial é um sucesso com todos estes post’s…. camarada, segui os passos do tutorial e não está enviando o e-mail. colocquei no servidor do site para abrir o contato.php, no entanto apresenta mensagem com “erro=1″, o que pode ser ? sou iniciante no negócio. Já com o a página html apresenta corretamente porém não envia nada, o que funciona é o botao de limpar…

  82. E ai pessoal… se alguém puder me ajudar agradeço…

    abraços!!

  83. Vlw mesmo Nathan, funcionou muito bem esse tutorial!!!! Parabéns!!!

  84. Olá Natan!
    Estou com quase o mesmo problema do Jose.
    Só que o meu, envia. E tentando confirmar todas as entradas, o erro é sempre o mesmo(erro=1)., até mesmo quando está tudo preenchido.Mas, acaba enviando direitinho.
    As mensagens que deveriam ser outras é que é sempre essa.
    Qual é a dica para solucionar esse problema?
    Te agradeço desde já!
    Abraço forte!

  85. Mutio bom..! excelente, grande trabalho Natan, muito obrigado !

  86. clebio freitas

    Muito bom tutorial e o que eu precisava mesmo, sendo que gostaria de poder usar em asp com CDO seria possivel postar ou mandar o script em asp pro meu email ?
    agradeço

  87. Diego Cavalcante

    Olá pessoal, ja vi que alguns tiveram sucesso e outros não conseguiram com esse formidável tutorial, então quero me adiantar antes de criar meu formulario, alguem conseguiu fazer o formulário usando o action script 3.0? pegou direitinho?
    boa sorte ai a todos. vlw.

  88. Diego Cavalcante

    olá natan, gostaria de saber que, se eu mudar o nome do arquivo php para algum nome qualquer como contatocomentario1.php e alterar lá direitinho o diretorio na action do flash, o formulario vai funcionar do mesmo jeito? obg cara, vc é bom.

  89. Gustavo Sardenberg

    Caro Natan, utilizei o tutorial do formulário Flash/PHP e esta tudo funcionando perfeitamente após eu ter feito minhas adaptações necessárias.
    Porém estou precisando de um Help e não consegui após pesquisar bastante:
    Como faço para manipular (gotoAndPlay(“2″)) um MC ao clicar em uma das opções de um ComboBox?
    MUITO GRATO!!!!

  90. Tem como enviar pra 2 ou maisl e-mails ao mesmo tempo?

  91. Oi Natan, cara deu quase tudo certo
    mas quando eu mando meu arquivo para o servidor
    e envio o e-mail
    recebo a menssagem que foi enviado corratamente
    o meu servidor é HOSTNET e vejo que é o mesmo problema do wesley
    mas tentei enviar para o hotmail,com e também não deu ??
    oque pode estar dando errado

    o meu e-mail

    docestilo@hotmail.com

  92. Rodrigo Henrique

    Olá, gostaria de entender essa parte:

    envia.sendAndLoad(“http://localhost/contato.php”, envia, “POST”);

    e como faço para alterar e colocar o meu form por exemplo, meu site é:

    http://www.meusite.com.br/formulario.php

    vai ficar como está acima?

  93. Rodrigo Henrique

    Meu irmão! Muito obrigado, depois de fazer do jeito que você ensinou eu consegui fazer 100% testado!!! Funciona mesmo, minha dúvida chega ao fim aqui!
    Agora consegui fazer o Formulário de contato!

    Muito obrigado Natan Alves, Valeu mesmo!

  94. Diego Cavalcante

    olá Natan, formulário preenchido com sucesso. realmente funciona, só uma coisa me deixou intrigado, vc usou no php o utf8_decode para corrigir a acentuação neh? então vamos lá, no imput text instanciado de mensagem_txt não da pra escrever com acentuação, me explica o pq? mais no geral o formulario funciona mesmo, parabens, testado e aprovado.

  95. Natan cara.
    estou com problemas ao resolver este formulário.
    toda vez que tento enviar um e-mail ele dá “erro ao enviar mensagem”

    sabe oque pode estar acontecendo?
    quando eu abro o contato.php no link
    http://www.bugraan.com/contato.php
    ele mostra a seguinte mensagem:

    erro=1

    sabe oque pode ser?
    estou meio ancioso para finalizar este trabalho =/
    desde já grato.
    Kdu

  96. Natan, perfeito esse tutorial, mto bom! parabens cara!

    Mas ta dando um erro pra mim qdo eu mudo as variaveis pro php receber. Eu simplesmente troco os nomes, colocando os nomes da instancia q eu criei. O flash exporta certinho, mas na hora de testar no servidor, ele “erro ao enviar o email”. Eu troco esses dados pq eu recebo o email só com nome, email e mensagem preenchidas, o resto td em branco. E pra receber os outros, preciso incluir esses dados no açoes.

    Alguem me ajuda?

    Abs

  97. Prezado Natan…ótimo este tutorial…eu que sou meio leigo pude fazer numa boa…

    Entretanto estou com um problema aqui…
    Ele envia porém a mensagem no meu email vem desse jeito:

    Nome: undefined
    ;E-mail: undefined
    Quer receber a Newsletter:
    Empresa: undefined
    Assunto: undefined
    Mensagem: undefined

    O que será que acontece?
    Desde já obrigado!
    abrs!

  98. Natan, excelente o seu tutorial, parabéns pelo trabalho!!
    Gostaria, se possível, que você me enviasse os arquivo fla?

    eu email é josemauro.moreira@gmail.com

  99. Olá! Td bem, antes de mais nada gostaria de parabenizar pelo tutorial formulário flash com php, ta 10! Parabéns mesmo!!!
    Bom.. como estou começando no flash gostaria de esclarecer uma dúvida minha.
    Estou usando o exemplo com AS2 que vc fez, mas não entendi uma parte da action que seria a seguinte:

    /* Enviamos as variáveis ao PHP e carregamos a mensagem que vai vir do PHP */
    envia.sendAndLoad(”http://localhost/contato.php“, envia, “POST”);

    A parte do endereço eu deixo assim mesmo ou tenho q mudar?
    Eu deixei assim e está dando erro que é o seguinte:

    Error opening URL “http://localhost/contato.php”

    Eu joguei assim mesmo no servidor (meu servidor suporta PHP) não da mensagem de erro,mas ele fica tentado busca e não sai do nada…

    Bom desde já agradeço… se puder me responder tbém!
    Abrç

    josemauro.moreira@gmail.com

  100. parceiro você não sabe o galho que me quebrou…valew e abraços…
    Parabéns!!!

  101. Oi Nathan,
    Parabéns pelo tuto!!!
    Eu não estou conseguindo acertar o caminho do arquivo php. Você pode me ajudar? O arquivo está na pasta public_html do servidor… Obrigada!

  102. OI Nathan,
    Valeu! Só temos um problema, eu estou usando outro php – uso a função mail pois meu servidor perminte. Tive com isso que desabilitar a verificação no envio e só deixei no status que a Mensagem foi enviada com sucesso!
    Isto me acarreta em vários cliques no envio pois a função limpar() não esta funcionando e com isso gera dúvida se foi ou não enviado.
    É possível ao clicar ir um Frame a frente ai colocaria a mensagem de envio com Sucesso.

    Parabéns!

  103. Ola nathan,

    Parabéns pelo excelente tutorial. Funcionou perfeitamente aqui! Abracos.

  104. Boa tarde, eu quero fazer algo parecido, mas no entanto estou com problemas pois não consigo receber nada na minha conta de email.
    Queria o seguinte no meu formulario: ao clickar em enviar, confirmasse, se estavisse tudo OK, , o formulario enviava os dados para php e dps para o mail. E no flash depois passa-se para a próxima frame.
    Todo o formulario sem a caixa de status.

    O meu ficheiro encontra-se aqui para me ajudarem -> http://www.aeipam.com.sapo.pt/formulario.zip

    Muito obrigado

  105. Alguém sabe informar se o xpg comporta este tipo de formulário?

    Quando mando enviar .. fica enviando e nada acontece!

  106. No caso eu estou querendo criar esse formulario
    para meu site de MuOnline.Agora tem um seguinte problema que é a função mail porque eu utilizo um manipulador que chama AppServ que o site fica no pc ai eu fiz aquele arquivo pra ver se tinha a função e da isso:

    Warning: mail(): Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in c:\appserv\www\index22.php on line 2

    Se alguem tiver a solução me avisa.
    E parabens pelo site ae muito bom.De grande ajuda.

  107. Estou usando esse formulario no meu site, muito bom

  108. Seguinte, o meu formulario deu erro no localhost, procurei o que tenho que fazer, mas não acho uma coisa detalhada sobre isso, alguem poderia me ajudar?

  109. Olá Natan,

    Teria como disponibilizar o arquivo para Download?

  110. gostaria de saber qual o e-mail para solucionar algumas duvidas… referente ao PHP. pois o flash ta rodando prefeitinho.
    obs…

    segue o endereço do que eu estou montando.
    http://www.jundveda.com/cotaçao.html
    abraço.

  111. Boas,

    Eu montei um formulário com base nas suas dicas e quando clico no botão para enviar, fica sempre a enviar, não chega a dizer se o email foi enviado ou não e nem chega a enviar email nenhum.
    Testei já com os dois ficheiros no servidor e nada…
    O formulário é este: http://twodlrhero-server.22web.net/test.swf
    Se quiser os ficheiros: http://twodlrhero-server.22web.net/preview.zip

    Espero que me possa ajudar com esta duvida.
    Obrigado

  112. Olha

    tem q arrasta um campo label do Painel Propriedades e nao criar um dynamictexto
    eu fiz aqui e deu certo

    valeu

  113. tem como vc disponibilizar este formulário para download???

  114. Cara, muito obrigado… Você é o cara. Funcionou perfeito!

  115. Boa noite….
    Não funcionao aqui em casa…
    devo ter errado em algo…
    eu uso um form diferente…
    mas não sei carregar a ComboBox.

    ————–PHP——————-

    ——–Flash——
    FRAME COM:

    stop();
    Selection.setFocus(“nome”);
    //assim o cursor já começará no campo “nome”
    destinatario = “antony_graber@hotmail.com”;
    //esse é o endereço que receberá a mensagem.
    /* Criamos um Array para preencher o ComboBox cidades */
    var cidades:Array = ["São Paulo", "Rio de Janeiro", "Belo Horizonte", "Porto Alegre", "Outra cidade"];
    /* Preenchemos o ComboBox com os valores do Array */
    cidade_cb.dataProvider = cidades;

    Cria um botão “ENVIAR”

    on (release) {
    System.useCodepage = true;
    //esse comando acima corrige os acentos no código php
    loadVariablesNum(“form.php”, 0, “GET”);
    //já este irá carregar o arquivo php e enviar para seu email
    gotoAndPlay(80);
    //aqui enviamos o flash para o quadro 2 onde terá uma nova programação com novas telas para demostrar ao usuário que o email dele foi enviado
    }

    gostaria de saber se desta forma há a pocibilidade de capiturar o campo da COmboBox!

  116. Cara …tu me salvou..kkkkk

  117. Ola Natan

    será que você pode me ajudar:
    tenho um site hospedado na locaweb
    vou adicionar a ele este formulário
    que você disponibilizou, achei muito legal, “sem palavras”.
    será que você pode me ajudar neste caminho:
    A hospedagem da sup.a php
    Site: http://www.veritha.com
    E.mail: veritha@veritha.com

    Error opening URL “http://localhost/contato.php”

    Natan muito obrigado

  118. o formulário é legalzinho, mas não funciona

  119. Olá Natan!!
    Mto bom o post!! Mas nao consegui … fica “enviando mensagem” pro resto da vida. Vc poderia me mandar o arquivo fla por email
    Obrigada

  120. parece que nosso amigo Natan anda muito ocupado ou não escreve mais nesta página

    Será que alguém pode me ajudar, assim como nossa amiga Mariah, a mensagem de *enviando mensagem*, é infinita. Seria muito grato se alguém me enviase o código fonte,e o php

  121. Fala galera,
    É o seguinte… segui todos os passos, e depois de tomar litros de café, o exemplo não tá rolando em meu localhost, mas um detalhe interessante é q quando hospedo na internet, ele fica bala, funciona perfeitamente, então acho que o problema é em alguma configuração no PHP ou no APACHE.
    Caso alguém tenha a solução, que postem aqui, por favor.
    Um abraço

  122. Olá tenho um formulario pronto, mas esou com o seguinte problema: ele não reconhece quando coloco os nomes nos campos, isto é, mesmo depois de inserido os caracteres nos campos ele ainda dá a mensagem de alerta como: “Preencha o campo Nome” e assim por diante será que vc pode me ajudar?
    Meu script tá assim:

    alerta._visible = false;
    alerta.ok.onPress = function(){

    alerta._visible = false;
    }

    nome_txt.restrict = “A-Z-A-z-ç-Ç”;
    nome_txt.maxChars = 60;

    idade_txt.restrict = “0-9″;
    idade_txt.maxChars = 2;

    ddd_txt.restrict = “0-9″;
    ddd_txt.maxChars = 3;

    dddc_txt.restrict = “0-9″;
    dddc_txt.maxChars = 3;

    telefone_txt.restrict = “0-9″;
    telefone_txt.maxChars = 10;

    celular_txt.restrict = “0-9″;
    celular_txt.maxChars = 10;

    enviar_mc.onPress = function(){
    alerta._visible =true;
    }

    //botão radio
    cidade = cidade_Cbox.getValue();
    sexo = radioGroup.selection;
    Tsexo = sexo.data;

    if(nome_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o Nome";
    Selection.setFocus("nome_txt");

    }

    else if(idade_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque uma Idade Válida";
    Selection.setFocus("idade_txt");
    }

    else if(end_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o Endereço";
    Selection.setFocus("end_txt");
    }

    else if(bairro_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o Nome do Bairro";
    Selection.setFocus("bairro_txt");
    }

    else if(email_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o E-mail";
    Selection.setFocus("email_txt");

    }

    else if(cidade_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o Nome da Cidade";
    Selection.setFocus("cidade_txt");
    }

    else if(ddd_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o DDD";
    Selection.setFocus("ddd_txt");
    }

    else if(telefone_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o Número do Telefone";
    Selection.setFocus("telefone_txt");
    }

    else if(ddd_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o DDD";
    Selection.setFocus("ddd_txt");
    }
    else if(celular_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o Número do Celular";
    Selection.setFocus("celular_txt");
    }

    else if(estado_Cbox.getValue() =="Selecione"){
    alerta.alerta_txt.text = "Selecione um Estado";
    }

    else if(msg_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque sua Mensagem";
    Selection.setFocus("msg_txt");
    ;
    }
    //ações valor campos
    else{
    valido = 0;
    for(i=0; i<email_txt.length; i++)
    if(mail_txt.text.charAt(i) == "@")
    valido = 1;
    }

    //ações
    if(valido==1){
    loadVariablesNum("enviar.php", 0, "POST");
    alerta.alerta_txt.text ="Formulario Preenchido com sucesso"

    nome_txt.text = "";
    idade_txt.text = "";
    end_txt.text = "";
    bairro_txt.text = "";
    ddd_txt.text = "";
    dddc_txt.text = "";
    telefone_txt.text = "";
    celular_txt.text = "";
    email_txt.text = "";
    cidade_txt.text = "";
    msg_txt.text = "";
    }

    limpar_mc.onPress = function(){

    nome_txt.text = "";
    idade_txt.text = "";
    end_txt.text = "";
    bairro_txt.text = "";
    ddd_txt.text = "";
    dddc_txt.text = "";
    telefone_txt.text = "";
    celular_txt.text = "";
    email_txt.text = "";
    cidade_txt.text = "";
    msg_txt.text ="";
    }

  123. olá estou com problemas no meu codigo, quando coloco os caracteres nos campos ele não reconhece e continua pedindo para preencher os campos por favor, tem como vc dar uma verificada no meu codigo? Ele é o seguinte:

    alerta._visible = false;
    alerta.ok.onPress = function(){

    alerta._visible = false;
    }

    nome_txt.restrict = “A-Z-A-z-ç-Ç”;
    nome_txt.maxChars = 60;

    idade_txt.restrict = “0-9″;
    idade_txt.maxChars = 2;

    ddd_txt.restrict = “0-9″;
    ddd_txt.maxChars = 3;

    dddc_txt.restrict = “0-9″;
    dddc_txt.maxChars = 3;

    telefone_txt.restrict = “0-9″;
    telefone_txt.maxChars = 10;

    celular_txt.restrict = “0-9″;
    celular_txt.maxChars = 10;

    enviar_mc.onPress = function(){
    alerta._visible =true;
    }

    //botão radio
    cidade = cidade_Cbox.getValue();
    sexo = radioGroup.selection;
    Tsexo = sexo.data;

    if(nome_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o Nome";
    Selection.setFocus("nome_txt");

    }

    else if(idade_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque uma Idade Válida";
    Selection.setFocus("idade_txt");
    }

    else if(end_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o Endereço";
    Selection.setFocus("end_txt");
    }

    else if(bairro_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o Nome do Bairro";
    Selection.setFocus("bairro_txt");
    }

    else if(email_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o E-mail";
    Selection.setFocus("email_txt");

    }

    else if(cidade_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o Nome da Cidade";
    Selection.setFocus("cidade_txt");
    }

    else if(ddd_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o DDD";
    Selection.setFocus("ddd_txt");
    }

    else if(telefone_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o Número do Telefone";
    Selection.setFocus("telefone_txt");
    }

    else if(ddd_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o DDD";
    Selection.setFocus("ddd_txt");
    }
    else if(celular_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque o Número do Celular";
    Selection.setFocus("celular_txt");
    }

    else if(estado_Cbox.getValue() =="Selecione"){
    alerta.alerta_txt.text = "Selecione um Estado";
    }

    else if(msg_txt.length < 2 ){
    alerta.alerta_txt.text = "Coloque sua Mensagem";
    Selection.setFocus("msg_txt");
    ;
    }
    //ações valor campos
    else{
    valido = 0;
    for(i=0; i<email_txt.length; i++)
    if(mail_txt.text.charAt(i) == "@")
    valido = 1;
    }

    //ações
    if(valido==1){
    loadVariablesNum("enviar.php", 0, "POST");
    alerta.alerta_txt.text ="Formulario Preenchido com sucesso"

    nome_txt.text = "";
    idade_txt.text = "";
    end_txt.text = "";
    bairro_txt.text = "";
    ddd_txt.text = "";
    dddc_txt.text = "";
    telefone_txt.text = "";
    celular_txt.text = "";
    email_txt.text = "";
    cidade_txt.text = "";
    msg_txt.text = "";
    }

    limpar_mc.onPress = function(){

    nome_txt.text = "";
    idade_txt.text = "";
    end_txt.text = "";
    bairro_txt.text = "";
    ddd_txt.text = "";
    dddc_txt.text = "";
    telefone_txt.text = "";
    celular_txt.text = "";
    email_txt.text = "";
    cidade_txt.text = "";
    msg_txt.text ="";
    }

  124. Natan quero lhe agradecer pela dica, o formulário está funcionando perfeitamente.
    Flash + PHP perfeito.
    donihum@globo.com

  125. Natan.. Tú é o cara!!!

    Finalmente consegui fazer o formulario que sempre quis!!! hehehe

    Parabens cara!
    Sucesso pra tu!
    Abs,
    Felipe Machado

  126. Excelente o seu trabalho Natan. E o legal é vc dividir esse conhecimento todos com pobres “analfabetos” como eu…Valeu mesmo.

  127. SEGUINTE COLOQUEI SEU PHP NO MEU FORM APARENTEMENTE FUNCIONA TUDO OK
    MIAS O E-MAIL NUNCA CHEGA AO SEU DESTINATARIO :/ SABE ME DIZER PQ???

    VLWW E EXCELENTE TUTORIAL ABRAÇO

  128. http://www.paisdeouro.orgfree.com SE QUIZER DAR UMA OLHADA NO CONTATO

  129. Natan, sou iniciante total no flash, seu que oque vou pedir ja é demais, mais podeira disponibilizar o código fonte?

    abraços

  130. cara eu implementei esse form em actionscript 3 e php… fiz o formulário no flash e o botao limpar nao limpa os radiobuttons..

    sabe algo sobre isso??

    obrigado

  131. tenho um formulario em flash com o seguinte script:

    resp0_txt.restrict = “Ç,Ã, Á”;

    so que não funciona o til e os acentos…
    so funciona se deixa ativado o CASP LOCK ou se usar o SHIFT..

    oq devo fazr?

  132. Otima aula

    Porem estou com um problema, estou usando os componentes do as3 qndo dou o ctrl+enter os componentes ficam piscando, poderia me ajudar?

    abços

  133. Entaum…testei com varios emails, mas nenhum deles da suporte a função mail….qual função devo usar entao? pesquisei muitas coisas na net, mas todos os modelos de php para p envio de email com as3 é usando essa função mail…vc tem algum tuto p me passar ou sabe me dizer por qual função procurar???

  134. Pingback: Formulário em PHP e outras dicas! « VolpHouse Design

  135. Aew Natan,
    Já envien no seu e-mail mas também estou colocando problema aqui, fiz formulário funcionou perfeitamente, mas ta demorando mto para chegar a mensagem sabe se posso agilizar isso, pois tenho outro formulário que chega na hora a mensagem.

  136. Pingback: Form PHP e Flash « VolpHouse Design

  137. Natan, segui passo a passo e conseguir fazer, mas não testei. Mesmo assim modifiquei todo para a minha necessidade mas quando coloquei online, ele não ta enviando o e-mail, sabe me dizer qual pode ser o problema?

  138. ola , estou recebendo o email certinho mais o remente nao apareçe , no lugar do remetente fica assim =

    remetente: – - – - assunto: outros ok.

  139. Valeu, funcionou azeitado, eliminei alguns itens e deu tudo certo.
    Abraços, e muita sorte pra vc!

  140. Ah, vou colocar os creditos também.
    Tnxs!!!!

  141. Um otimo tutorial.
    Segui todos os passos e consegui desenvolver um formulário para o site de um cliente.
    E deu tudo certo.
    http://www.rgposervice.com.br/

    Parabens Natan.

  142. Olá Nathan, tudo bem?

    Teria como me enviar por email o modelo fla.

    Att
    Lucas Barbosa

  143. Engraçado, fiz certinho, mas na boa fala que envia e nunca chega :} se alguem kiser conferir

    http://www.jointecnologia.com/contato.swf

    Se alguem kiser me da uma luz eu mando os fonte por email. Obrigado

  144. legal cara funcionou … obrigado amigo, abraço

  145. Natal é possível obrigar o usuário a escolher pelo menos uma opção na Checkbox?

  146. Olá Natan, td bem?
    Deixa eu tirar uma dúvida, eu fiz o seu formulário e deu td certo… até outro dia funcionava, porém tive q fazer alguma alterações na pagina de contato, mas a estrutura de códigos não mudei em nada e notei q o formulário não está funcionando no internet explorer, nos outros navegadores funciona direitinho, só no internet explorer que não, vc saberia o porquê? Ou o q eu devo fazer?
    Obrigado
    Akira

  147. Esse foi o melhor tutorial q encontrei na net sobre isso!! tanto q agora so uso dessa forma.

    E agora como seria um igual só que com anexo???
    Tem algum link para um tutorial dessa forma!?

    Não encontro nada em As3

    Obrigada

  148. Para mim o formulário funcionou no firefox, mas no internet explorer não enviou nada. Fiz só no AS2, vou tentar com o AS3.

  149. Galera pra mim fica aparecendo enviando mensagem.
    Alguem poderia me ajudar….????
    Por favor quem tiver o arquivo fla, mande no meu email

    sidocai@yahoo.com.br, agradeço.

    PS: “Por favor, Urgente tenho que entregar o projeto ainda hoje.”

    abraços, Mxs

  150. Olá amigos eu estava com o mesmo problema do caio a cima..
    resolvi o problema fazendo o seguinte..

    na parte:

    envia.sendAndLoad(“http://localhost/contato.php”, envia, “POST”);
    }

    troque i por isso:

    /* Enviamos as variáveis ao PHP e carregamos a mensagem que vai vir do PHP */
    envia.sendAndLoad(“contato.php”, envia, “POST”);
    }

    e dexei os 2 arquivos no mesmo diretório.. funcionou na hora.. é o melhor formulário que eu ja utilizei.. muito obrigado.. parabéns.

  151. Fiz o formulario e funcionou. Mas fica mensagem dizendo que enviou a mensagem e nunca chega! Alguem pode ajudar? obrigado

  152. Olá Natan!

    Belo tutorial! Simples, objetivo, funciona perfeitamente! São pessoas como você que fazem da Net um lugar bom para estudos!

    Parabéns.

  153. Olá Natan!

    Belo tutorial! Simples, objetivo e funciona perfeitamente. São pessoas como você que fazem da Net um ótimo ambiente para estudos.

    Parabéns!

  154. Parabéns Natan. Perfeito esse tutorial… Funciona certinho !!! Está de Parabéns pelo trabalho.

  155. Olá Natan!
    Ótimo tutorial.
    Parabéns.
    Apareceu um problema na minha tentativa de execução.
    Se pudesse me ajudar ficaria muito agradecido.
    A mensagem é enviada porem não recebo no email.
    Você teria alguma solução?
    Desde de já agradeço.
    *obs: Já confirmei a funcionalidade do servidor e ele suporta o envio php. E todos os códigos foram revisados milhões de vezes. Uso Action Script 3.0. o site em questão é “www.topmalharia.com.br”. O formulario sai como enviado não aparece nenhum erro, porém a mensagem não chega.
    Obrigado.

  156. Natan, muito bom o post, mas quanto tentei aplicar ao site deu um erro de segurança que não consegui resolver.

    Error #2044: securityError: não manipulado. text=Error #2048: Violação da área de segurança: http://luizcalderaro.com.br/contato.swf não pode carregar dados de http://www.luizcalderaro.com.br/mail.php.
    at contato_fla::MainTimeline/frame1()

  157. Oi Natan!

    Muito legal esse tutorial, consegui fazer sem problemas. Mas ele não funcionou! Ao clicar em enviar ele mostra “Enviando mensagem” e não sai mais disso. Quando abro o arquivo /contato.php no navegador não mostra nenhum erro, porém ele mostra o seguinte: erro 1.

    O que posso fazer?

  158. Que parto só pra fazer um formulário

    dá pra ser muito mais simples e só com flash

  159. Olá Natan, muito bom esse tutorial, parabéns.
    Estou apenas com um problema, qdo clico no botão enviar
    aparece no estatus “enviando mensagem” e fica nisso
    o que será q está acontecendo?
    obrigado

  160. O meu problema é o mesmo do JUMBO!!! Ajuda por favooooorr.

  161. cara olha só ai ta dizendo pra min copia esses codigos ai e colar la no meop site certo?
    mais eu queria inserir um formulario sem precisar escrever tudo isso , por exemplo, pra inserir uma imagem, botao, letras etc…
    eu n escrevo para fazer isso !!

    me ensine como faze formularios sem precisar escrever !!!
    pff

    grato
    willian!

  162. recomendo quando for testar colocar os html no diretorio principal como index
    do servidor se puderem, e tambem colocar o nome das isntantes e da variaveis diferentes, a sim, no formato php coloque nos _POST['aqui nome da variave, mas não o da instance'] a sim teste primeiro o php livre para ver se ele esta mandando um email vasio.

  163. Oi natan!!!Primeiro de tudo parabéns pelo tutorial, mas tive um problema relatado por outros companheiros.Quando envio a mensagem ele trava no “Enviando Mensagem” e não recebo a msg. O que estou errando????Grande abraço e obrigado!!!
    Obs:Meu servidor dá suporte para a função php.

  164. Ai cara, to com um problema: O formulario ta todo certo,mas quando o usuario Clica em enviar, Aparece que a mensagem foi enviada, mas eu num recebo, o que eu faço????????
    Se possivel, responde pelo email, pra eu ficar sabendo qd vc responder, se me add no msn, por favor, ponha no comentário!! Grato, excelente tutorial!

  165. Muito bom esse tutorial, aqui vai minha contribuição pra quem tem problemas de bloqueio do mail() php, depois de me quebrar achei uma solucao em ASP…

    <%
    'CRIA A INSTANCIA COM O OBJETO CDOSYS
    Set objCDOSYSMail = Server.CreateObject("CDO.Message")

    'CRIA A INSTANCIA DO OBJETO PARA CONFIGURAÇÃO DO SMTP
    Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")

    'SERVIDOR DE SMTP
    objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver&quot ;) = "smtp.gmail.com"

    'PORTA PARA COMUNICAÇÃO COM O SERVIÇO DE SMTP
    objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport&quot ;) = 25

    'PORTA DO CDO
    objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing&quot ;) = 2

    'Utilização de SSl
    objCDOSYSCon.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl&quot ;) = True

    'ATIVAR RECURSO DE SMTP AUTENTICADO
    objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate&quot ;) = 1

    'USU?RIO PARA SMTP AUTENTICADO
    objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername&quot ;) = "usuario@dominio.com"

    'SENHA DO USU?RIO PARA SMTP AUTENTICADO
    objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword&quot ;) = "senha"

    'TEMPO DE TIMEOUT (EM SEGUNDOS)
    objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout&quot ;) = 60

    'ATUALIZA A CONFIGURAÇÃO DO CDOSYS PARA ENVIO DO E-MAIL
    objCDOSYSCon.Fields.update
    Set objCDOSYSMail.Configuration = objCDOSYSCon

    'NOME DO REMETENTE, E-MAIL DO REMETENTE
    objCDOSYSMail.From = "Remetente ”

    ‘NOME DO DESINATARIO, E-MAIL DO DESINATÁRIO
    objCDOSYSMail.To = “NOME ”
    ‘objCDOSYSMail.cc = “Copia ”
    ‘objCDOSYSMail.bcc = “Copia Oculta ”

    ‘ASSUNTO DA MENSAGEM
    objCDOSYSMail.Subject = ” Envio autenticado – CDOSYS Apps”

    ‘CONTEÚDO DA MENSAGEM
    objCDOSYSMail.TextBody = “Teste do componente CDOSYS – Texto sem HTML”
    ‘PARA ENVIO DA MENSAGEM NO FORMATO HTML, ALTERE O TextBody PARA HtmlBody

    ‘objCDOSYSMail.HtmlBody = ” ”

    ‘ENVIA A MENSAGEM
    objCDOSYSMail.Send

    ‘DESTR?I OS OBJETOS
    Set objCDOSYSMail = Nothing
    Set objCDOSYSCon = Nothing

    response.write “Email enviado com sucesso”

    ‘Response.Redirect “Enviado.asp”
    %>

  166. boa tarde, parabéns pelo tutorial coisa rara de se achar.

    Acabei de terminar. estou fazendo um teste aqui no meu servidor que aceita PHP. Ele não esta limpando e nem enviando para o e-mail que direcionei no contato.PHP. Poderia me ajudar grato!

  167. Boa tarde Natan,

    Parece que o problema é geral, quando clicamos em Enviar a página fica estacionada em “Enviando mensagem” e não recebemos o email.

    Gostaria que retornasse ao pedidos dos internautas sobre o que pode estar acontecendo de errado.

    Grato,
    Artur

  168. Pessoal, agora funcionou, acho que achei o que estava dando erro, pelo menos pra mim.

    Na linha da programção acima, onde está o comendo:

    envia.sendAndLoad(“http://localhost/contato.php”, envia, “POST”);

    Basta redirecionar para onde vocês colocaram a página “contato.php”

    envia.sendAndLoad(“http://www.seudominio.com.br/teste/formulario/contato.php”, envia, “POST”);

    Funcionou !!!

  169. Olá Natan, lendo as postagens anteriores vi que muitos tem os mesmos problemas que eu. O modelo informa que está enviando mensagem, mas não envia nada, nem dá erro, vi uns postes no locaweb que poderiam solucionar, mas também não funcionam, você diz em um outro tutorial que o e-mail do seu site é igual a esse mas não é…bem como poderia solucionar esse problema?

  170. Oi Natan, eu fiz tudo que tem ai e modifiquei alguns itens do seu formulário e não funcionou, ai voltei ao seu tutorial seguindo as normas do locaweb e também não funcionou. Vou postar meus códigos e se vc quiser te mando o .fla do arquivo. Desde já obrigado.

    .fla

    stop();
    enviar_btn.onRollOver = function (){
    enviar_btn.gotoAndPlay(2);
    }

    enviar_btn.onRollOut = function (){
    enviar_btn.gotoAndPlay(9);
    }

    apagar_btn.onRollOver = function (){
    apagar_btn.gotoAndPlay(2);
    }

    apagar_btn.onRollOut = function (){
    apagar_btn.gotoAndPlay(9);

    }/* Criamos um Array para preencher o ComboBox cidades */
    var maquinas:Array = ["","Escavadeiras", "Retroescavadeiras", "Rolos Compactadores", "Motoniveladoras", "Caçambas", "Pás-Mecânias", "Tratores de Esteira" , "Tratores de Rodas" , "Transporte de Máquinas", "Transporte de Pessoal", "Transporte de Combustível", "Mini-Maquinas"];
    /* Preenchemos o ComboBox com os valores do Array */
    maquinas_cb.dataProvider = maquinas;

    var envia:LoadVars = new LoadVars();
    /* Ao clicar do botão enviar */

    enviar_btn.onPress = function() {
    /* Verifica se preencheu o campo nome */
    if (empresa_txt.text == “”) {
    /* Mostra a mensagem de erro */
    status_txt.text = “Empresa ou Particular?”;
    } else if (nome_txt.text == “”) {
    /* Mostra a mensagem de erro */
    status_txt.text = “Informe um Responsável Técnico”;
    /* Verifica se preencheu o campo email */
    } else if (email_txt.text == “”) {
    /* Mostra a mensagem de erro */
    status_txt.text = “Preencha o campo E-mail corretamente”;
    } else if ((email_txt.text.indexOf(“@”) == -1 || email_txt.text.indexOf(“.”) == -1)) {
    /* Mostra a mensagem de erro */
    status_txt.text = “Preencha o campo E-mail corretamente”;
    /* Verifica se preencheu o campo mensagem */
    } else if (telefone_txt.text == “”) {
    /* Mostra a mensagem de erro */
    status_txt.text = “Informe um Telefone”;
    /* Verifica se selecionou a opção sim ou opção não do RadioButton */
    } else if (sim.selected == false && nao.selected == false) {
    /* Mostra a mensagem de erro */
    status_txt.text = “Selecione Sim ou Não”;
    /* Se tudo estiver ok */
    } else {
    /* Envia para o PHP a variavel nome com os dados do campo nome */
    envia.empresa = empresa_txt.text;
    /* Envia para o PHP a variavel email com os dados do campo email */
    envia.nome = nome_txt.text;
    /* Envia para o PHP a variavel email com os dados do campo email */
    envia.email = email_txt.text;
    /* Envia para o PHP a variavel cidade com o valor selecionado no ComboBox cidade */
    envia.maquinas = maquinas_cb.value;
    /* Envia para o PHP a variavel assunto com o valor selecionado no ComboBox assunto */
    envia.mensagem = telefone_txt.text;
    /* Verifica se a opção sim foi selecionado no RadioButton */
    if (sim.selected == true) {
    /* A opção sim foi selecionada */
    /* Envia para o PHP a variavel news com o valor sim */
    envia.abastece = “sim”;
    /* Verifica se a opção não foi selecionado no RadioButton */
    } else if (nao.selected == true) {
    /* A opção nao foi selecionada */
    /* Envia para o PHP a variavel news com o valor não */
    envia.abastece = “não”;
    }
    /* Avisa que está mandando o E-mail */
    status_txt.text = “Enviando mensagem”;
    /* Enviamos as variáveis ao PHP e carregamos a mensagem que vai vir do PHP */
    envia.sendAndLoad(“http://www.jmarquesconstrutora.com.br/teste.php”, envia, “POST”);
    }
    };
    /* Assim que o PHP for carregado */
    envia.onLoad = function(ok) {
    /* Se carregou tudo certinho */
    if (ok) {
    /* Se deu tudo ok no PHP */
    if (this.erro == 0) {
    /* Chamamos a função limpa */
    limpa();
    /* Mostra mensagem de sucesso */
    status_txt.text = “Mensagem enviada com sucesso”;
    } else {
    /* Mostra mensagem de erro */
    status_txt.text = “Erro ao enviar E-mail”;
    }
    }
    };
    /* Ao clicar do botão limpar */
    limpar_btn.onPress = function() {
    /* Chamamos a função limpa */
    limpa();
    };
    /* Função responsável por limpar os campos do formulário */
    function limpa() {
    /* Zeramos a variável programas */
    empresa_txt.text = “”;
    nome_txt.text = “”;
    email_txt.text = “”;
    telefone_txt.text = “”;
    status_txt.text = “”;
    /* Voltamos a selecionar o primeiro item dos ComboBox */
    maquinas_cb.selectedIndex = 0;
    /* Deixamos os RadioButtons não selecionados */
    sim.selected = false;
    nao.selected = false;
    }

    php

    <?php
    /* Valores enviados pelo Flash */
    /* Para esse tutorial irei enviar 5 valores */
    /* Fiquem livres a enviar quantos valores quiserem */
    $nome = utf8_decode(@$_POST["nome"]);
    $email = utf8_decode(@$_POST["email"]);
    $maquinas = utf8_decode(@$_POST["maquinas"]);
    $assunto = "E-mail de Teste";
    $telefone = utf8_decode(@$_POST["telefone"]);
    $abastece = utf8_decode(@$_POST['abastece']);
    /* Coloquem seu E-mail aqui */
    $para = "teste@jmarquesconstrutora.com.br";
    /* Aqui uma pequena verificação para evitar que enviem E-mails sem valores */
    if ($nome != "" && $email != "" && $maquinas != "" && $empresa != "" && $telefone != "") {
    /* Montamos o E-mail */
    /* Criei um exemplo bem simples de E-mail usando HTML */
    /* Fiquem livres para modificar conforme desejam */
    $corpo = '’.$assunto.”;
    $corpo .= ‘Nome: ‘.$nome.’;E-mail: ‘.$email.’Abastecimento: ‘.$abastece.”;
    $corpo .= ‘Máquina: ‘.$maquina.’Assunto: ‘.$assunto.’Mensagem: ‘.$telefone;
    /* Aqui modificamos o tipo de E-mail para o formato HTML */
    $headers = “MIME-Version: 1.1 \n”;
    $headers .= “Content-type: text/plain; charset=iso-8859-1 \n”;
    $headers .= $mailheaders
    $headers .= “Return-Path: $Email \n”;
    mail(“teste@jmarquesconstrutora.com.br”, “Assunto”, “Texto”, $headers);
    mail(“$para”, “$assunto”, “$corpo”, “$headers”);
    /* Retornamos um Ok para o Flash */
    print ‘erro=0′;
    /* Caso os campos não sejam preenchidos */
    } else {
    /* Retorna o erro ao Flash */
    print ‘erro=1′;
    }
    ?>

  171. Oi Natan, aqui poderia me ajudar meu formulário retorna erro do php e não envia a mensagem, já conferi e meu servidor dá suporte a função mail do PHP. Grato.

  172. Oi Natan, blza ? parabéns pelo tutorial, com sua explicação ficou bem fácil de criar, porem precisei de outros tutoriais para fazer funcionar corretamente. Por isso caso alguém tenha as mesmas dificuldades que tive vai umas dicas. Para add os componentes ComboBox, CheckBox e RadioButtons, basta apertar Crtl + F7 e puxar os componentes até o palco.
    E pra quem teve o problema de travar no “Enviando Mensagem” é necessario trocar o local que o flash puxa o arquivo para o local aonde foi postado.

    Exemplo como esta:
    envia.sendAndLoad(“http://localhost/contato.php”, envia, “POST”);
    para:
    envia.sendAndLoad(“contato.php”, envia, “POST”);

    Obs: quando eu coloquei apenas o contato.php, apareceu erro, porem a mensagem foi enviada.

    espero ter ajudado …abraço

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>