Form Flash + PHP = Demonio da Bolivia!
Galera seguinte, sou novo no forum [1º post], queria ser novo assim no flash tambem...assim justificaria mais o perrenhe que to passando aqui...haushau
Tenho que fazer um Formmail Flash + PHP, e tem que ser em AS2.0 [Clientes...]...entao vamos aos problemas....
1. Fazia muuuuuuuuuuuuuuuito tempo que nao mexia com flash, voltei para tentar aprender AS3.0, entao enferrugei total...agora tem esse tar de php, q se eu contrar ele na rua, juro que acabo ca raça dele..haushau
2. Eu segui passo a passo esse tuto aqui la do MX Studio...LINK
3. A parte do flash, eu ate consigo entender, ainda, mas nao acho erros...que talvez existam; mas o php nao adianta, ja li, re-li, li mais uma vez, e a unica coisa que consegui foi decora-lo, rs...acredito que o erro esteja nele. Meu server e o UOLHOST, plataforma LINUX que suporta php, inclusive la eles tem um formmail html + php que eu testei e funcionou corretamente!
4. Imaginem alguem que ja tentou de tudo para resolver esse problema, ja li e fiz 7319 tutoriais, 3674 foruns sobre o assunto, enfim, perdi 1 semana, 22horas, 49minutos e 37segundos do meu tempo...rs e nao consegui resolver o problema =/ Seguem os codigos: 1º PHP, depois Flash AS2.0
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';
}
?>
Flash AS2.0:
/ 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“,](http://localhost/contato.php%E2%80%9C,) 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;
}5. Como voces podem ver, esta igual ao do tuto, eu tive todo o trabalho de re-digitar ambos os codigos, para ver se nao tinha nenhum erro de digitaçao [vai saber ne]
6. OS PROBLEMAS SAO DOIS. 1º AS VEZES NEM RECEBO O EMAIL, ISSO SE DA MAIS A NOITE. 2º QDO RECEBO ELE VEM EXATAMENTE COMO ABAIXO, ALGUEM SABE ME DIZER PORQUE ISSO ACONTECE?!
Nome:
Email:
Quer receber nossa newsletter:
Programas usados:
Assunto:
Mensagem:
7. Por fim, deveria entregar dois sites na segunda-feira, esse onde vai o form e um outro, acontece que graças a esse pequeno porem ingrato problema vai me permitir entregar o site desse form sem o form, devido a urgencia, e o outro vai atrasar...ainda bem que sou meu proprio funcionario...rs, entao imaginem alguem, eu diria desesperado! =P
Bom galera...sao 7 motivos para sei la, alguem tentar me ajudar [?], lendo o forum, acredito que tenha gente capaz disso aqui. Desde ja agradeço!
Abraços!
Discussão (3)
Carregando comentários...