Ir para conteúdo

Arquivado

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

Thiago de Oliveira Cruz

[Tutorial] Formulário Fácil de e-mail Flash + PHP

Recommended Posts

Desculpe, mas o que estás a dizer não tem sentido nenhum.

 

Se você mudar o nome da variavel e não mudar no código nem no PHP o dado de recepção você não recebe os dados porque o flash não envia.

 

Isso para começar ele vai enviar name e se você fizer $_POST['morada'] vai vir um grande branco... ou seja NADA.

Não tem como ele passar um dado que não existe.

 

Você me disse que testou com trace os dados

Você sabe onde fica a instancia de cada campo, acredito eu.

 

Fica bem embaixo da onde você seleciona o tipo de texto na parte de propriedades do CS3 ou anteriores, ou é o primeiro campo de propriedades do CS4.

 

Se você tiver o dado como variable as vezes se você mandar variable.text ele envia a informação... e as vezes não (acho que é algum bug) e não recomendo usar variable dos campos de texto.

 

O que você diz não faz absolutamente nenhum sentido...

Mesmo não sendo você quem fez... tudo que você precisaria fazer é apagar os campos... e trocar o código. (deixando com o mesmo layout)

 

 

Crie por si mesmo: 5 campos de texto (input text), 1 dynamic text e 1 botão

 

 

Coloque instancie o nome dos campos de input text como:

nome, tel, mail, empresa, assunto

 

Instancie o dynamic text como: error

 

Instancie o botão como: envia

 

E copie e cole o código abaixo no frame do seu flash:

envia.onPress = function(){
 trace("nome ="+nome.text);
 trace("telefone ="+tel.text);
 trace("mail ="+mail.text);
 trace("assunto ="+assunto.text);
 trace("empresa="+empresa.text);
}

De ctrl + enter para testar o código

 

Digite em todos os campos informações menos no error, pois você não vai mexer nele ainda.

E aperte o botão de enviar

 

Deve aparecer no output de seu flash listada a informação do nome, telefone, mail, assunto e mensagem um abaixo do outro em sequencia.

Exemplo:

nome: joaninha

telefone: 2244 6951

mail: joaninha@teste.com

assunto: isso é um e-mail de teste

empresa: Maloca da Oca(MdO)

 

 

Ok isso funcionou?????

Não??? apague tudo e comece novamente porque você errou na criação dos campos e não instancionou corretamente.

 

Se funcionou opa parabéns já podes avançar ao proximo passo.

 

Vamos então verificar os campos e enviar segue o código: (basta copiar e colar heim não tente alterar nada... enquanto não estiver 100% funcionando)

var Send:LoadVars = new LoadVars();
var Load:LoadVars = new LoadVars();

envia.onPress = function(){
	if (nome.text == "") {
		error.text = "O nome esta vazio";
		selection.setFocus("nome");
	} else if (tel.text == "") {
		error.text = "preencha o telefone";
		Selection.setFocus("");
	} else if (assunto.text == "") {
		error.text = "preencha o assunto";
		Selection.setFocus("assunto");
	} else if (mail.text == "") {
		error.text = "O e-mail está vazio";
		Selection.setFocus("mail");
	} else if (empresa.text == "") {
		error.text = "Faltou a mensagem";
		Selection.setFocus("empresa");
	} else {
		Send.nome = nome.text;
		Send.telefone = tel.text;
		Send.assunto = assunto.text;
		Send.mail = mail.text;
		Send.empresa = empresa.text;
		Send.sendAndLoad("mail.php",Load,"POST");
		Load.onload = function(){
			if(this.resulta == "ok"){
				error.text = "Mail enviado com sucesso";
			}else {
				error.text = "Aconteceu um erro durante o envio";
			}
		}
	}
}

E seu php de mail deve ficar assim: (veja que não estou usando o seu crie um novo chamado mail.php)

<?php
	$nome = $_POST["nome"];
	$telefone = $_POST["telefone"];
	$email = $_POST["mail"];
	$assunto = $_POST["assunto"];
	$empresa = $_POST["empresa"];

	$headers = "From: $email\r\nReply-To: $email"; 

	$html = "Empresa: $empresa \n
	Nome: $nome \n
	Telefone: $telefone \n";


	if(mail("blabla@bla.com", $assunto, $html, $headers)){
	echo "&resulta=ok&";
	}
?>

 

Teste agora em um servidor que possa enviar e-mails e não no seu próprio computador(a não ser que você tenha sistema de envio de e-mail instalado)

 

Se tudo funcionar!!! parabéns você conseguiu fazer um funcionar!!! altere agora da forma que lhe interessar e mude o layout ;)

E pronto você "criou" o seu próprio código.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

eh claro k mudava tmb no php ams sabia k ele continuava a enviar para o php como morada pk fazia tipo um flush das variaveis todas amndadas pelo _Post mas ok vou tentar isso que disso e ja digo algo.. espero que esta seja de vez! mais 1 vez obrigado

 

Bem o campo empresa envia fiz o que disse apesar ter sido num formulario a parte quanto ao site basicamente so apaguei a input text e criei uma nova :S n sei bem pk estava a dar erro.. mas assim tmb foi da maneira k aprendi aprofundar mais o flash com as pesquisas e as perguntas aqui e melhorei o codigo do " on release" hehe mto obrigado pela ajuda :) ja agora so mais 1 pergunta noutro formulario

tem opçoes com radio button e pa enviar os dados tem "=qualidade2.selection.data;" e eu mudei para label que em vez de enviar MB envia-se Muito Bom mas ele continua com o MB..

mas vou exprientar criar o form por mim pode ser k resolva.. hehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom depende né radio button você pega o valor dele com

 

radio.label <--- assim você vai pegar a label

my_rb.data <--- assim você pega o valor colocado

 

Referencia:

http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00002778.html

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie um for e faça ele fazer o envio na parte de @mail com 3 e-mails diferentes como padrão

 

Exemplo:

$array = array("blabla@bla.com","blabla2@bla.com", "blabla3@bla.com") ;

for($i = 0; $i < 3; $i++){
$ok = mail($array[$i], $assunto, $html, $headers);
}

Se você tivesse perguntado isso no forum de PHP teria sido mais rapido e melhor não?

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pronto ta tudo direito mas metendo no server continua a dar como antes... apesar esta pergunta n ter mto haver com o flash provavelmente algo relacionado com a cache a causa do problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for cache é apenas do seu navegador...

 

Para isso limpe o cache dele no IE na parte de ferramentas para internet

 

No Firefox você aperta shift + ctrl + del e marque só a opção de cache

 

Feito isso em ambos vá ao site e de um ctrl + f5 para renovar as inforamções e pronto... terá a nova visualização :)

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for cache é apenas do seu navegador...

 

Para isso limpe o cache dele no IE na parte de ferramentas para internet

 

No Firefox você aperta shift + ctrl + del e marque só a opção de cache

 

Feito isso em ambos vá ao site e de um ctrl + f5 para renovar as inforamções e pronto... terá a nova visualização :)

 

Abraços

 

Por incrivel k pareça n fez efeito :S

e fiz trace no flash e td e ta a mandar as var para o mail.php mas ele no servidor vai po antigo( contacto.php )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Delete o arquivo contato.php ou mude o nome dele ;)

 

Mas o mail.php que eu criei para ti é bem parecido com seu contato.php se você reparar, pois eu não alterei os dados do php.

Só coloquei eles da maneira que seria melhor.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Delete o arquivo contato.php ou mude o nome dele ;)

 

Mas o mail.php que eu criei para ti é bem parecido com seu contato.php se você reparar, pois eu não alterei os dados do php.

Só coloquei eles da maneira que seria melhor.

 

Abraços

 

exacto pois por isso é k criei novo mesmo para ver se seria algo relacionado com o antigo afecta-se ams vou fazer isso ;)

 

Algo estranho se passa mas agora deixou de enviar mesmo tando a mandar para o ficheiro mail.php ( tao na mesma pasta) apesar de esses 2 ficheiros existir em varios sitios penso k alterei em todos..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve Berseck , ocara do flash!

Obrigado pela ajuda! Tudo tem dado certo! Magnifico!

 

Hoje venho com uma dúvida que deve ser de muita gente

Sabe estes templates help que se vende por aí... entao.. comprei um, e estou com problemas no formulario de email!

 

Vou te mandar 3 códigos, algo deve estar errado pq o email nao chega

 

 

 

Primeiro, é o código do Flash. Ele está numa layer, sozinho

 

rec="contato@fabrica8.com.br";

serv="php";

 

var fields_descriptions= Array ("",

Array("t1", "your_name", "Name:"),

Array("t2", "your_email", "E-mail:"),

Array("t3", "telephone", "Phone:"),

Array("t4", "message", "Message:"),

Array("t5", "field_2", "E-mail:"),

Array("t6", "field_3", "Endereço:"),

Array("t7", "field_4", "Fax:")

);

 

function reset_txt(name,name2,value) {

path=eval(_target);

path[name2]=value;

 

this[name].onSetFocus=function() {

path=eval(_target);

if(path[name2]==value) { path[name2]="";}

}

 

this[name].onKillFocus=function() {

path=eval(_target);

if(path[name2]=="") { path[name2]=value;}

}

}

 

 

for (i=1; i<=fields_descriptions.length; i++) {

reset_txt("t"+i, fields_descriptions[1], fields_descriptions[2]);

}

 

 

 

Em segundo, é o botão enviar, do flash

 

 

on (rollOver) {

this.gotoAndPlay("s1");

}

on (releaseOutside, rollOut) {

this.gotoAndPlay("s2");

}

 

 

 

on (release) {

for (i=1; i<_parent.fields_descriptions.length; i++) {

if (_parent[_parent.fields_descriptions[1]]!=_parent.fields_descriptions[2]) {

this[_parent.fields_descriptions[1]]=_parent[_parent.fields_descriptions[1]]+"&777&"+_parent.fields_descriptions[2];

}

_parent.reset_txt(_parent["t"+i], _parent.fields_descriptions[1], _parent.fields_descriptions[2]);

}

 

this.recipient=_parent.rec;

i=undefined;

getURL("contact."+_parent.serv, "_blank", "POST");

 

}

 

 

 

E em terceiro, é do ASP,

 

 

 

<%

for i=1 to 7

message=Request("message")

next

message=message + Request("message")

smtpServer = "mail.fabrica8.com.br"

smtpPort = 25

 

 

name = Request("Your_Name:")

Set myMail = CreateObject("CDO.Message")

myMail.Subject = "from " & name

myMail.From = Request("Your_Email:")

myMail.To = Request("recipient")

myMail.HTMLBody = "<html><head><title>Contact letter</title></head><body><br>" & message & "</body></html>"

myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpServer

myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = smtpPort

myMail.Configuration.Fields.Update

myMail.Send

 

%>

 

 

 

Cara, nao consigo fazer esse trem funcionar!

Muito obrigado até aqui!

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Delete o arquivo contato.php ou mude o nome dele ;)

 

Mas o mail.php que eu criei para ti é bem parecido com seu contato.php se você reparar, pois eu não alterei os dados do php.

Só coloquei eles da maneira que seria melhor.

 

Abraços

 

exacto pois por isso é k criei novo mesmo para ver se seria algo relacionado com o antigo afecta-se mas vou fazer isso ;)

 

Algo estranho se passa mas agora deixou de enviar mesmo tando a mandar para o ficheiro mail.php ( tao na mesma pasta) apesar de esses 2 ficheiros existir em varios sitios penso k alterei em todos..

 

Bem ja ta tudo a dar excepto a mensagem do error.txt se deixar a branco ele avisa que n preencheu mas ao mandar email n diz se falha o envio ou se manda(apesar de estar a mandar o mail.) O codigo ta igual como mandou em cima so acrescentei tipo empresa.txt = ""; e etc.. para as caixas de texto..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro heijouk

 

Eu não trabalho com templates nem arrumo elas, a maioria delas usa códigos de Flash MX ou inferior... pelo menos a maioria que a galera mostra aqui, não arrumo esse tipo de código... ajudo a fazer o seu... mas não concerto código quebrado de terceiros...

 

E veja bem você ta chamando um PHP e usando um arquivo ASP?????? são incompativeis até onde eu sabia.

 

Abraços

 

Th1agoo

 

Eu não sei se você reparou, mas o onLoad é com L maiúsculo e não minusculo

Então aqui:

 Load.onload = function(){
 if(this.resulta == "ok"){
 error.text = "Mail enviado com sucesso";
 }else {
 error.text = "Aconteceu um erro durante o envio";
 }
 }

Você tem que colocar o L maiúsculo no load de onload

Capaz de ser esse o erro ;)

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom você coloca um combobox no qual o usuário vai selecionar um dos setores.

 

Ai você vai passar esse setor para o php que vai receber o numero de (0 a 5 por exemplo)

Vai verificar qual o e-mail correspondente ao número e ai vai enviar para aquele e-mail, no lugar do $recipient = "seu e-mail"; <----- aqui você vai colocar a array que vai receber os valores

 

por exemplo no flash você vai fazer assim:

import mx.controls.ComboBox;

var cb:ComboBox = this.createClassObject(ComboBox, "cb", this.getNextHighestDepth());
cb.addItem("Selecione a area desejada");
cb.addItem({data:2, label:"Administração"});
cb.addItem({data:3, label:"Marketing"});
cb.addItem({data:4, label:"Recepção"});
cb.addItem({data:5, label:"Viral"});
cb.addItem({data:6, label:"Webdesign"});

stop();
nome.text = "";
email.text = "";
mensagem.text = "";
status.text = "";
var obj_s = new LoadVars();
var obj_l = new LoadVars();
_global.nome = ""
var area:Number = new Number();;

obj.change = function(e:Object){
	area = e.target.selectedIndex;
};


bt_enviar.onPress = function(){
if (nome.text == "") {
status.text = "O nome esta vazio";
selection.setFocus("nome");
} else if (email.text == "") {
status.text = "O e-mail está vazio";
Selection.setFocus("email");
} else if (mensagem.text == "") {
status.text = "Faltou a mensagem";
Selection.setFocus("mensagem");
} else if (area == null or area == 0) {
status.text = "Informe a area desejada";
} else {
obj_s.nome = nome.text; //Valor do nome
_global.nome = nome.text; //Coloco o nome na variavel global
obj_s.email = email.text; //valor do e-mail
obj_s.mensagem = mensagem.text; //valor da mensagem
obj_s.area = area;
obj_s.sendAndLoad("mail.php",obj_l,"POST");
obj_l.onload = carrega();
}
}

function carrega(){
if(obj_l.ok = "1"){
nextFrame();
}else{
status.text = "Erro no envio";
}

bt_limpar.onPress = function(){
nome.text = "";
email.text = "";
mensagem.text = "";
status.text = "";
}

Lembre que você precisa ter um combox em sua biblioteca para que esse código funcione!

 

E ai no php você vai fazer o seguinte:

<?php
// adicione seu e-mail na linha abaixo
$subject = "formulário de contato";

$nome = $_POST['nome'];
$email = $_POST['email'];
$mensagem = $_POST['mensagem'];
$area = $_POST['area'];
//Coloque os e-mails das areas aqui, certifique-se que tem o mesmo número de e-mails que no form em flash
$arr_mails = ['administracao@empresa.com','marketing@empresa.com','recepcao@empresa.com','viral@empresa.com','webdesign@empresa.com'];
//Como a array começa do 0 e sua array tem 5 numeros começando do 1 tem que subtrair 1
$recipient = $arr_mails[$area - 1];

$msg = "nome: $_POST['nome'] nnE-mail: $_POST['email'] nnMensagem: $_POST['mensagem']";

// adicione seu e-mail na linha abaixo
$mailheaders = "From: seu e-mail";


$ok = $mail("$recipient", "$subject", "$msg", "$mailheaders");
if($ok){
echo "&ok=1&";
}else {
echo "&ok=2&";
}
?>

Isso ai deve funcionar se eu não errei no php ;)

 

Abraços

 

Berseck, eu coloquei o que você passou no flash, mas eu já tenho uma tela montada, mas qdo chamo ao invés de aparecer no combobox que eu criei, aparece outro combobox no canto esquerdo da tela....tem alguma ajuda?? mais uma coisa, você colcou um stop();, mas no caso eu preciso tirar isto pois no topo eu tenho uma animação, e tirando o stop não fixa a opção escolhida no combobox

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Th1agoo

 

Eu não sei se você reparou, mas o onLoad é com L maiúsculo e não minusculo

Então aqui:

 Load.onload = function(){
 if(this.resulta == "ok"){
 error.text = "Mail enviado com sucesso";
 }else {
 error.text = "Aconteceu um erro durante o envio";
 }
 }

Você tem que colocar o L maiúsculo no load de onload

Capaz de ser esse o erro ;)

 

Abraços

 

Pronto finalmente e eu k perdi bastante tempo só por causa desse L -_-

mais 1 vez obrigado pela ajuda abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi menina,

 

A combo box aparece no canto superior pq eu crio uma na mão com o código

var cb:ComboBox = this.createClassObject(ComboBox, "cb", this.getNextHighestDepth());

Basta remover essa linha e colocar a instancia de seu combo box como cb

 

=)

Abraços

 

-------------------------------------- // --------------------------------------

 

Thiago que bom que você conseguiu chará ;)

Tudo de bom para ti ;)

 

Firme nos estudos

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Thiago que bom que você conseguiu chará ;)

Tudo de bom para ti ;)

 

Firme nos estudos

 

Abraços

 

Sempre estudante mesmo apos o curso sempre algo a aprender hehe =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

berseck, sou novo em AS. Segui o tuto, só coloquei mais campos. Só que o email nao chega.

 

AS

 

stop();

nome.text = "";

email.text = "";

telefone.text = "";

tipofesta.text = "";

convidados.text = "";

mensagem.text = "";

status.text = "";

var obj_s = new LoadVars();

var obj_l = new LoadVars();

 

 

bt_enviar.onPress = function(){

if (nome.text == "") {

status.text = "O nome esta vazio";

selection.setFocus("nome");

} else if (email.text == "") {

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

Selection.setFocus("email");

} else if (mensagem.text == "") {

status.text = "Faltou a mensagem";

Selection.setFocus("mensagem");

} else if (tipofesta.text == "") {

status.text = "Faltou o tipo de festa";

Selection.setFocus("tipofesta");

} else if (convidados.text == "") {

status.text = "Faltou o No de convidados";

Selection.setFocus("convidados");

} else {

obj_s.nome = nome.text; //Valor do nome

obj_s.email = email.text; //valor do e-mail

obj_s.telefone = telefone.text; //valor do telefone

obj_s.tipofesta = tipofesta.text; //valor do tipo de festa

obj_s.convidados = convidados.text; //valor do convidados

obj_s.mensagem = mensagem.text; //valor da mensagem

obj_s.sendAndLoad("www.hkeventos.com.br/mail.php",obj_l,"POST");

obj_l.onload = carrega();

}

}

 

function carrega(){

if(obj_l.ok = '1'){

nextFrame();

}else{

nome.text = 'Erro no envio';

}

}

 

bt_limpar.onPress = function(){

nome.text = "";

email.text = "";

mensagem.text = "";

status.text = "";

}

PHP

 

<?php

// adicione seu e-mail na linha abaixo

$recipient = "contato@hkeventos.com.br";

 

$subject = "formulário de contato";

 

$nome = $_POST['nome'];

$email = $_POST['email'];

$telefone = $_POST['telefone'];

$tipofesta = $_POST['tipofesta'];

$convidados = $_POST['convidados'];

$mensagem = $_POST['mensagem'];

 

$msg = "nome: $_POST['nome'] nnE-mail: $_POST['email'] nnTelefone: $_POST['telefone'] nnTipo de Festa: $_POST['tipofesta'] nnConvidados: $_POST['convidados'] nnMensagem: $_POST['mensagem']";

 

// adicione seu e-mail na linha abaixo

$mailheaders = "From: contato@hkeventos.com.br";

 

 

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

if($ok){

echo “&ok=1&”;

}else {

echo “&ok=2&”;

}

?>

Se puder ajudar agradeço!!! http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

 

$mail n existe

 

é @mail

 

Abraços

 

Corrigido. Porém o email ainda não está chegando.

Ô Formulario pra dar dor de cabeça.

 

<_<

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.