Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MacRoger

[Resolvido] Formulário E-mail Flash+PHP

Recommended Posts

Olá Flasheiros,

 

Estou com um problema neste tutorial Formulário E-mail Flash+PHP feito pelo Natan.

O site que estou fazendo para uma ONG que sou voluntário e achei este formulário de E-Mail bem apropriado para que eu quero, ajudem por favor!

É o seguinte:

 

1°. O site esta hospedado na LOCAWEB - Quando clica em enviar o Formulário ele diz que a mensagem foi enviada com sucesso, mas não chega nada;

2°. O ComboBox do formulário funciona no flash (CTRL+Enter), mas no servidor ele fica estático (não funciona);

 

Segue abaixo os scripts para analise:

 

ActionScript:

/* Criamos um Array para preencher o ComboBox cidades */var cidades:Array = ["Selecione","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://www.conviversabersocial.com.br/teste/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;}

Script 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 = "rsdesign@globo.com";   /* 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.0rn";      $headers .= "Content-type: text/html; charset=iso-8859-1rn";      $headers .= "From:rsdesign@globo.comrn";      $headers .= "Return-Path: rsdesign@globo.comrn"; // return-path      /* Aqui mudamos o cabeçalho para exibir o E-mail de quem enviou */            /* 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';   }?>

A todos que puderem me dar uma luz desde já agradeço. :joia:

 

Roger.

Compartilhar este post


Link para o post
Compartilhar em outros sites

/* Enviamos as variáveis ao PHP e carregamos a mensagem que vai vir do PHP */
      envia.sendAndLoad("http://www.conviversabersocial.com.br/teste/contato.php", envia, "POST");

se o arquivo .php e o .swf estiverem na mesma pasta muda essa linha pra

 

 

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

agora pro combo box, testa com outro navegador, eu to tendo incríveis dores de cabeça por causa do ie, tenta no firefox e vê se funciona, se ainda sim não funcionar tente usar um componente combo box, pode ser que funcione

Compartilhar este post


Link para o post
Compartilhar em outros sites

berseck & Bastardo,

 

Primeiramente obrigado pela atenção.

 

Acho que o problema de não enviar o e-mail é do sistema da LOCAWEB, mas não sei como solucionar, eles falaram que tem uma rotina no PHP que tem que seguir, mas eu não entendo muito de PHP.

Segue aqui abaixo o que eles da LOCAWEB me enviaram (link)

Clique aqui

 

O site não esta no diretório raiz do servidor, esta em uma pasta (teste), por isso que coloquei o caminho absoluto.

 

Segue abixo a URL do site em teste:

Veja aqui

 

Já fiz os testes em todos os Browser's que tenho (Firefox, Internet Explorer, Safari), nenhum deles o ComboBox funcionou.

 

Grato.

 

Roger.

 

Moçada,

 

O problema do ComboBox que não estava funcionamdo no servidor foi resolvido.

Como eu faço LoadMovie no nível 1 ai só tive que colocar o componente ComboBox no stage do filme principal e deletar, ou seja, ele tem que estar na biblioteca do main stage.

 

Agora só falta o danado do PHP enviar o formulário de e-mail, a LOCAWEB é F.... Eles não resolve, só manda ler um link sobre o assunto, já li e reli e nada.

 

 

Valew.

 

Roger.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você tivesse utilizado MovieClipLoader não teria que colocar o combobox no root... mas já que resolveu então ta beleza.

 

Baixa essa classe aqui: http://ajuda.locaweb.com.br/pt-br/Enviar_e-mails_pelo_PHP_usando_o_PHPMailer

e utilize ela para enviar seus e-mails.

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Berseck,

 

Agradeço mesmo sua atenção, o problema é que o LOCAWEB não aceita e-mail de fora do seu servidor, criei uma conta de e-mail no servidor com a extensão do site e deu certinho.

Valew mais uma vez!

 

Roger.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.