Ir para conteúdo

POWERED BY:

Arquivado

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

MarinaKunst

[Resolvido] PHP + Flash

Recommended Posts

Olá, andei pesquisando pela net alguns tutoriais com Formularios (inclusive no imasters).

Mas nenhum deles foi eficiente, digo, com nenhum dos codigos vistos recebi o e-mail de retorno (sim, eu hospedei pra testar).

 

Vejamos minha situação atual:

 

 

variaveis:

"nome", "email" e "mensagem".

 

segundo frame:

 

loadVariablesNum("form.php", 0, "POST");

stop();

intervalo = function() {

prevFrame();

clearInterval (tempo);

}

tempo = setInterval (intervalo, 1800);

 

 

botão enviar:

 

on (release) {

if (nome = "") {

status = "O nome esta vazio";

selection.setFocus("nome");

} else if (email = "") {

status = "O e-mail está vazio";

Selection.setFocus("email");

} else if (mensagem = "") {

status = "Faltou a mensagem";

Selection.setFocus("mensagem");

} else {

nextFrame();

}

}

 

 

form.php :

 

<?php

$recipient = "marinakunst@sinos.net";

 

$subject = "formulário de contato";

 

$msg = "Nome: $nome\n\nAssunto: E-mail:$email\n\nMensagem: $mensagem";

 

$mailheaders = "From: marinakunst@sinos.net";

 

mail("$recipient", "$subject", "$msg", "$mailheaders");

?>

 

__________________________________________________

 

Alguns dos problemas adicionais,

-tenho tambem aquelas bolotinhas de seleção (RadioButton do Flash) e não sei como trabalhar com variaveis com elas.

-a mensagem que deveria aparecer caso estivesse em branco algum campo não aparece

-e o maior problema, não recebe o email de retorno.

 

 

 

Aguardo,

obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom o metodo do formulário usado por você não é mais válido...

 

Ele vai dar erro em 70% dos usuários e servidores...

 

Você tem que usar o LoadVars() e sendAndLoad() para enviar as informações.

 

Seguindo o seu próprio raciocionio... só que em vez de nos campos de texto preencher a parte do var eu instancio.. o código vai ficar assim:

//Segundo frame
var obj_s:LoadVars = new LoadVars();
var obj_l:LoadVars = new LoadVars();

obj_s.nome = nome.text;
obj_s.email = email .text;
obj_s.mensagem= mensagem.text;

obj_s.sendAndLoad("form.php", obj_l, "POST");
stop();

obj_l.onLoad = function(ok){
if(ok==success){
prevFrame();
}else{
trace("erro no php");
}


//botão enviar:

on (release) {
if (nome.text = "") {
status = "O nome esta vazio";
selection.setFocus("nome");
} else if (email.text = "") {
status = "O e-mail está vazio";
Selection.setFocus("email");
} else if (mensagem.text = "") {
status = "Faltou a mensagem";
Selection.setFocus("mensagem");
} else {
nextFrame();
}
}

No PHP:

<?php
$nome = $_POST['nome'];
$email = $_POST['email'];
$mensagem = $_POST['mensagem'];

$recipient = "marinakunst@sinos.net";

$subject = "formulário de contato";

$msg = "Nome: $nome\n\nAssunto: E-mail:$email\n\nMensagem: $mensagem";

$mailheaders = "From: marinakunst@sinos.net";

$ok = $mail("$recipient", "$subject", "$msg", "$mailheaders");

if($ok){
echo "&$ok=success&";
}else{
echo "Mail Failure";
}
?>

E pronto você deve receber seus e-mails.

 

Existem milhões de tutoriais atualizados... inclusive no iMasters... você deveria da uma olhada por lá

 

E para pegar dados de uma cb é assim:

cb.addItem("Selecione uma Opção");
cb.addItem("opção 1");
cb.addItem("opção 2");
cb.addItem("opção 3");

var listener:Object = new Object();

cb.addEventListener("change",listener);

listener.change = function(){
	trace(cb.selectedIndex);
	trace(cb.value);
}

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente eu vou enlouquecer!

 

berseck,

fiz como você disse e não recebi email nenhum.

 

Mudei de tática, resolvi usar somente AS para fazer o contato.

No arquivo há somente duas layers, a dos objetos e a das ações. Ações:

 

// Define as variaveis 
email = "marinakunst@sinos.net";
mailto = "mailto:" add email;
assunto = "contato pelo site";

// Configuração do combobox 
var aSetor:Array = [
	{label:'Geral', data:'Geral'},
	{label:'Lancheria', data:'Lancheria'},
	{label:'Loja', data:'Loja'},
	{label:'Restaurante', data:'Restaurante'}
];
setor_cb.dataProvider = aSetor;
setor_cb.selectedIndex = 0; // Valor pré selecionado

// Configuração do RadioButton
sug_rb.label = "Sugestão";
duv_rb.label = "Duvida";
elo_rb.label = "Elogio";
cri_rb.label = "Crítica";

// Configuração do CheckBox
sim_cb.label = "Sim, eu gostaria.";

// Configuração dos botões
env_btn.label = "Enviar";
lim_btn.label = "Limpar";


// Quaddo o botão limpar for clicado
lim_btn.onRelease = function(){
	nome_txt.text = "";
	email_txt.text = "";
	cid_txt.text = "";
	sim_cb.selected = false;
	sug_rb.selected = false;
	duv_rb.selected = false;
	elo_rb.selected = false;
	cri_rb.selected = false;
	msg_txt.text = "";
	setor_cb.selectedIndex = 0;
};

env_btn.onRelease = function(){
	if (nome_txt.text != "" && email_txt.text != "" && cid_txt.text != "" && (sug_rb.selected == true || duv_rb.selected == true || elo_rb.selected == true || cri_rb.selected == true)){
	
	// Verifica o valor selecionado em objetivo
	if (sug_rb.selected){
		objetivo = "sugestão";
	}
	if (duv_rb.selected){
		objetivo = "duvida";
	}
	if (elo_rb.selected){
		objetivo = "elogio";
	}
	else{
		objetivo = "critica";
	};
	
	// Verifica se a opção enquete está marcado
	if (sim_cb.selected){
		agenda = "Sim"
	}
	else{
		agenda = "Não"
	}
	
	// Envai os dados por e-mail
	getURL(mailto add "?subject=" add assunto add "&body=" add "Nome: " add nome_txt.text add newline add " Email: " add email_txt.text add newline add " Cidade: " add cid_txt.text add newline add " Setor: " add setor_cb.selectedItem.data add newline add " objetivo: " add objetivo add newline  add " Receber agenda: " add agenda add newline add " mensagem: " add msg_txt.text);
	
	// Limpa os campos
	nome_txt.text = "";
	email_txt.text = "";
	cid_txt.text = "";
	sim_cb.selected = false;
	sug_rb.selected = false;
	duv_rb.selected = false;
	elo_rb.selected = false;
	cri_rb.selected = false;
	msg_txt.text = "";
	setor_cb.selectedIndex = 3;

	msg.text = "Dados enviados com sucesso."; 
	}
else{
	msg.text = "Erro ao enviar os dados."; 
	gotoaddPlay(1);
	};
};

 

 

 

 

Resumindo, não recebo e-mail igual.

"E agora José?"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas flash não manda e-mail O.o

 

Essa sua função de e-mail ai não existe O_O...

 

Bom eu sugiro o seguinte...

Eu já tive diversos problemas e resolvi diversos problemas de e-mail...

E englobei em 1 tutorial só

 

Link

 

Baixe o arquivo que está nesse tutorial... coloque ele em seu servidor e TESTE sem alterar os arquivos antes de testar

 

Se não chegar e-mail 1 resposta já sei...

Que seu servidor é SMTP

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, pus no ar preenchi e enviei, não apareceu nenhuma mensagem de Envio com sucesso, mas de qualquer modo, ficou seu email la.

Deve ter sido enviado pra você, se deu certo.

 

Aguardo,

obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da no mesmo sim...

 

Você vai ter que usar essa classe de SMTP para configurar seu e-mail...

Para isso você vai lá no forum de PHP pesquisar a respeito... ou perguntar... que deve ter alguem que saiba onde tem ^^

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi,

pois bem, agora eu estou em desespero! oO

Não consigui até agora abrir teu .fla então fui a busca de outro tuto.

Era bem completo, com tudo que precisava, componentes e tudo mais. Veja o code:

 

//layer açoes

var setor:Array = ["Geral", "Lancheria", "Loja", "Restaurante"];
setor_cb.dataProvider = setor;
var agenda:String = new String();
var envia:LoadVars = new LoadVars();
enviar_btn.onPress = function() {
	if (nome_txt.text == "") {
		status_txt.text = "Preencha o campo Nome corretamente";
	} else if (email_txt.text == "") {
		status_txt.text = "Preencha o campo E-mail corretamente";
	} else if ((email_txt.text.indexOf("@") == -1 || email_txt.text.indexOf(".") == -1)) {
		status_txt.text = "Preencha o campo E-mail corretamente";
	} else if (cidade_txt.text == "") {
		status_txt.text = "Preencha o campo Cidade corretamente";
	} else if (mensagem_txt.text == "") {
		status_txt.text = "Preencha o campo Mensagem corretamente";
	} else {
		envia.nome = nome_txt.text;
		envia.email = email_txt.text;
		envia.cidade = cidade_txt.text;
		envia.setor = setor_cb.value;
		if (sug_rb.selected == true) {
			envia.tema = "sugestão";
		} else if (duv_rb.selected == true) {
			envia.tema = "dúvida";
		} else if (elo_rb.selected == true) {
			envia.tema = "elogio";
		} else if (cri_rb.selected == true) {
			envia.tema = "crítica";
		}
		if (sim_ch.selected == true) {
			agenda = "Sim";
		} else if (sim_ch.selected == false) {
			agenda = "Não";
		}
		envia.agenda = agenda;
		status_txt.text = "Enviando mensagem";
		envia.sendAndLoad("http://www.tendadoumbu.com.br/teste/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() {
	limpa();
};
function limpa() {
agenda = "";
nome_txt.text = "";
email_txt.text = "";
cidade_txt.text = "";
mensagem_txt.text = "";
status_txt.text = "";
setor_cb.selectedIndex = 0;
sim_ch.selected = false;
sug_rb.selected = false;
duv_rb.selected = false;
elo_rb.selected = false;
cri_rb.selected = false;
}

 

 

//php

<?php
   $nome = utf8_decode(@$_POST['nome']);
   $email = utf8_decode(@$_POST['email']);
   $cidade = utf8_decode(@$_POST['cidade']);
   $assunto = utf8_decode(@$_POST['tema']);
   $mensagem = utf8_decode(@$_POST['mensagem']);
   $news = utf8_decode(@$_POST['agenda']);
   $para = "marina_kunst_nin@hotmail.com";
   if ($nome != "" && $email != "" && $cidade != "" && $assunto != "" && $mensagem != "") {
	  $corpo = '<html><head><title>'.$assunto.'</title></head><body>';
	  $corpo .= 'Nome: '.$nome.'<br />;E-mail: '.$email.'<br />Quer receber a Agenda Cultural: '.$news.'<br />';
	  $corpo .= 'Cidade: '.$cidade.'<br />Tema: '.$assunto.'<br />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';
   }
?>

 

Quando hospedo no servidor, e faço o teste o 'status' ali mostra "Erro ao enviar E-mail". Pq?

-.-'

E quanto ao SMTP, estive conversando com meu professor de php e ele me comentou que se eu passar meu contato.php pros caras do servidor eles mesmo liberam...

 

 

Vlw o/\o

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mari que Flash você está usando???

 

E o erro ao enviar o E-mail é que algum campo do seu flash ta chegando vazio para o PHP

Por isso ta dando erro...

 

Bem ali no finalzinho do php olha:

print 'erro=0';
   } else {
	  print 'erro=1';
   }

E no flash ele lê com essa função:

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";
		}
	}
};

E seu erro ta no else do enviar:

enviar_btn.onPress = function() {
	if (nome_txt.text == "") {
		status_txt.text = "Preencha o campo Nome corretamente";
	} else if (email_txt.text == "") {
		status_txt.text = "Preencha o campo E-mail corretamente";
	} else if ((email_txt.text.indexOf("@") == -1 || email_txt.text.indexOf(".") == -1)) {
		status_txt.text = "Preencha o campo E-mail corretamente";
	} else if (cidade_txt.text == "") {
		status_txt.text = "Preencha o campo Cidade corretamente";
	} else if (mensagem_txt.text == "") {
		status_txt.text = "Preencha o campo Mensagem corretamente";
	} else {
//############ TA FALTANDO O envia.mensagem!!!! #################//
		envia.nome = nome_txt.text;
		envia.email = email_txt.text;
		envia.cidade = cidade_txt.text;
		envia.setor = setor_cb.value;
		if (sug_rb.selected == true) {
			envia.tema = "sugestão";
		} else if (duv_rb.selected == true) {
			envia.tema = "dúvida";
		} else if (elo_rb.selected == true) {
			envia.tema = "elogio";
		} else if (cri_rb.selected == true) {
			envia.tema = "crítica";
		}
		if (sim_ch.selected == true) {
			agenda = "Sim";
		} else if (sim_ch.selected == false) {
			agenda = "Não";
		}
		envia.agenda = agenda;
		status_txt.text = "Enviando mensagem";
		envia.sendAndLoad("http://www.tendadoumbu.com.br/teste/contato.php", envia, "POST");
	}
};

 

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.