Ir para conteúdo

POWERED BY:

Arquivado

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

Rowlei

[Resolvido] Form Flash AS3.0 + PHP

Recommended Posts

Olá pessoal, estou aqui necessitando da ajuda de você, porque ja tentei de tudo e como sou novo em flash não conseguir resolver. Tenho o seguinte form para contato, os botões e respostas funcionam certinho, só mesmo na hora de enviar o e-mail o mesmo não chega...

os objetos estão todos instanciados...

 

Segue o script AS3.0 e abaixo o PHP

 

var tempoMensagem:Timer; //intervalo entre mensagens de aviso
var variaveis:URLVariables; //receber dados no flash pra enviar pro script php
var urlPhp:URLRequest; //vai amarzenar o arquivo php externo
var loader:URLLoader; //carregar e comunicar com arquivo php

//iniciamos o programa
init();



/***************************
 * FUNÇÕES
 * Toda mecânica está separada em pequenas funções
 ****************************/

//inicia e configura todo o programa
function init():void
{
	//habilitamos acentuação
	System.useCodePage = true;
	
	//limpamos todos os campos de texto antes de começar.
	limpaTodosCamposTextos();
	
	//cria o Timer com 3 segundos(3000 milesegundos) executa quandoTempoAcabar() apenas 1 vez.
	tempoMensagem = new Timer(3000, 1); 
	tempoMensagem.addEventListener(TimerEvent.TIMER, quandoAcabarTempo);
		
	//quando clicar no botão executa a função enviaMensagem();
	enviarBtn.addEventListener(MouseEvent.CLICK, quandoEnviarBtn);
}


//função de evento, executa a quando clicar no botao enviarBtn
function quandoEnviarBtn(e:MouseEvent):void
{
	verificaDadosAntesDeEnviar();
}


/* Verificar e se qualquer um dos campos estão vazios ou incorretos,
 * caso esetja errado, mostra mensagem de aviso.
 * Se não, no final envia começa enviar os dados...*/
function verificaDadosAntesDeEnviar():void
{
	if(nomeTxt.length < 3)
	{
		mostraMensagemAviso("Coloque um nome com pelo menos 3 letras");
	}
	else if(emailTxt.length == 0)
	{
		mostraMensagemAviso("Preciso do seu e-mail pra te responder.");
	}
	else if(emailTxt.text.indexOf("@") == -1 ||
			emailTxt.text.indexOf(".") == -1)
	{
		mostraMensagemAviso("Ops! Esse e-mail não é valido!");
	}
	else if(assuntoTxt.length == 0)
	{
		mostraMensagemAviso("Insira um assunto.");
	}
	else if(mensagemTxt.length == 0)
	{
		mostraMensagemAviso("Ahh! Não esquece da mensagem.");
	}
	else{ 
		enviaDadosParaPHP();
	}
}


//responsável por interagir informação do Flash com script PHP
function enviaDadosParaPHP():void
{
	mostraMensagemAviso("Enviando mensagem...");
	
	/* iniciamos e criamos variaveis dinamicas
	 * que recebem o conteúdo digitado nos campos do flash
	 * essas variáveis servirão de ponto entre o Flash e script PHP */
	variaveis = new URLVariables();
	variaveis.nomePhp = nomeTxt.text;
	variaveis.emailPhp = emailTxt.text;
	variaveis.assuntoPhp = assuntoTxt.text;
	variaveis.mensagemPhp = mensagemTxt.text;
	
	/* iniciamos variavel que tem o arquivo PHP
	 * devemos aplicar método POST de envio de dados
	 * e transmitimos os dados dos campos do Flash para o script PHP */
	urlPhp = new URLRequest("http://www.agenciawebsul.com.br/jmmoveis/mail.php");
	urlPhp.method = URLRequestMethod.POST;
	urlPhp.data = variaveis;

	/* iniciamos variavel responsável por "recuperar" dados/informações do PHP
	 * quando estiver completo o carregamento do arquivo PHP, executa a função que confirma envio.
	 * quando surgir erro durante o envio, executa a função que mostra mensagem de erro.
	 * e carregamos o arquivo PHP armazenado na variavel urlPhp */
	loader = new URLLoader();
 	loader.addEventListener(Event.COMPLETE, quandoEnviadoMensagem);
 	loader.addEventListener(IOErrorEvent.IO_ERROR, quandoHouverErroNoEnvio);
 	loader.load(urlPhp);
}


//Função de evento, mostra ao usuário que a mensagem foi enviada com sucesso.
function quandoEnviadoMensagem(e:Event):void
{
	mostraMensagemAviso("Mensagem enviada!");
	iniciatempoMensagemDeAviso();
	limpaTodosCamposTextos();
}


//Função de evento, mostra ao usuário que houve algum erro durante o envio.
function quandoHouverErroNoEnvio(e:IOErrorEvent):void
{
	mostraMensagemAviso("Ops! Surgio erro! Tenta novamente.");
 	iniciatempoMensagemDeAviso();
}


//Função de evento do Timer, limpa o campo de aviso, funcao do Timer
function quandoAcabarTempo(e:TimerEvent):void
{
	mostraMensagemAviso("");
}


/* Limpa todos os campos de textos digitados pelo usuário
 * depois aplica foco do cursor de texto no campo nomeTxt */
function limpaTodosCamposTextos():void
{
	nomeTxt.text = emailTxt.text = assuntoTxt.text = mensagemTxt.text = "";
	stage.focus = nomeTxt;
}


/* Destinada pra enviar mensagem de aviso
 * e apaga esse aviso após 3 segundos usando timer.*/
function mostraMensagemAviso(texto:String):void
{
	avisoTxt.text = texto;
}


/* Destinado pra reniciar e iniciar intervalo Timer
 * Pra não atropelar o tempoMensagem de cada mensagem de aviso que foi disparada antes*/
function iniciatempoMensagemDeAviso():void
{
	tempoMensagem.reset();
	tempoMensagem.start();
}

Scrip PHP nomeado como mail.php

 


<?php
//coloque o email de destinatário:
$enviaPara = 'email@site.com.br';
 
//Criamos variaveis PHP que recupera as Variaveis criadas no Flas
$campoNome = $_POST['nomePhp']; //retorna o valor digitado no campo "nomeTxt" do Flash
$campoEmail = $_POST['emailPhp']; //retorna o valor digitado no campo "emailTxt" do Flash
$campoAssunto = $_POST['assuntoPhp']; //retorna o valor digitado no campo "assuntoTxt" do Flash
$campoMensagem = $_POST['mensagemPhp']; //retorna o valor digitado no campo "mensagemTxt" do Flash
 
//Assunto padrão do seu e-mail
$subject = 'www.agenciawebsul.com.br';
 
//Monta o corpo da mensagem enviada
$mensagem = "Nome: ".$_POST['nomePhp']." \n";
$mensagem .= "E-mail: ".$_POST['emailPhp']." \n";
$mensagem .= "Assunto: ".$_POST['assuntoPhp']." \n\n";
$mensagem .= "Mensagem: \n". $_POST['mensagemPhp'];
 
//e-mail do remetente:
$mail_headers = 'From: '.$_POST['emailPhp'];
 
//envia o e-mail
mail($enviaPara, $subject, $mensagem, $mail_headers);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe perguntar, já vi colegas com problema semelhante.

 

Seu server tem suporte a PHP?

 

 

 

Se for possível publicar um link com o seu fla eu testo no meu server (uso CS4). O tempo é curto, isso facilita bastante.

Não tenho domínio, mas por comparação dá para perceber se há alguma diferença.

 

Tenho uma página de teste com um form em AS3 + PHP (no meu perfil tem um link), baixei um template editei e publiquei, funcionou na primeira. Os ajustes foi com o auxílio dos colegas aqui do fórum.

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

3 perguntas

 

1 - Verificou se não ta chegando os e-mails na caixa de spam?

2 - Seu e-mail precisa de envio de SMTP? login e senha para enviar e-mail?

3 - Testou com gmail... hotmail... whatever mail?

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

3 perguntas

 

1 - Verificou se não ta chegando os e-mails na caixa de spam?

2 - Seu e-mail precisa de envio de SMTP? login e senha para enviar e-mail?

3 - Testou com gmail... hotmail... whatever mail?

 

 

Abraços

 

testando no gmail e hotmail amigo não esta chegando na caixa de spam... continuo a procura da solução kkk

obrigado Berseck, abraço!

 

Pessoal, resolvi....

O problema era com o endereço do arquivo mail.php, tudo certinho agora funcionando qeh uma beleza...

Abraço e obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como resolveu rowley ?

 

estou com o mesmo problema e é exatamente este mesmo codigo , mesmo assim

 

não vai ! só se eu exportar , mas no server não

 

Ir para o topo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como resolveu rowley ?

 

estou com o mesmo problema e é exatamente este mesmo codigo , mesmo assim

 

não vai ! só se eu exportar , mas no server não

 

Ir para o topo

 

 

Caro amigo Hsantos

 

 

O colega Rowlei informou que corrigiu o endereço do arquivo "mail.php" no swf e o form funcionou.

 

 

Sugiro criar um novo tópico, não deu pra compreender o que significa "exportar".

 

 

 

 

Abraços

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.