Ir para conteúdo

Arquivado

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

mc2008

[Resolvido] variaveis com components flash

Recommended Posts

boas

eu estou a fazer um formulário em as2.0 com os components do flash. A questão é que eu quero passar variaveis desse formulário para um php, que me envia depois para o email. Não estou a conseguir passar variáveis dos components, pois coloco só o nome da instância. Todo o formulário está dentro de um movie clip que é chamado na stage.

 

Já agora gostaria de saber como se coloca uma função de browse para ir buscar um ficheiro ao pc e carregá-lo .

 

obrigado pela ajuda :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre a questão do email:

 

//você cria um novo LoadVars
var email:LoadVars = new LoadVars();

//depois armazena os dados dos campos de texto.
email.emailFrom = emailFrom_txt.text; //quem envia
email.emailSubject = emailSubject_txt.text; //assunto
email.emailBody = emailBody_txt.text; //conteúdo

//envia os dados para o php.
email.sendAndLoad("mail.php", 0,"POST");
};

php:

<?php
// adicione seu e-mail na linha abaixo
$recipient = "seuemail@host.org";

$subject = "formulrio de contato";

$msg = "nome: {$_POST["emailFrom"]}\n\n E-mail:{$_POST["emailSubject"]}\n\n Mensagem: {$_POST["emailBody"]}\n";

$mailheaders = "MIME-Version: 1.0\r\n";
$mailheaders .= "Content-type: text/html; charset=UTF-8\r\n";

// adicione seu e-mail na linha abaixo
$mailheaders = "From: seuemail@host.org";

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

Se eu não me engano é assim que se faz.

 

Sobre o envio de arquivos via upload pesquise sobre FileReference.

 

Abraços e até mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre a questão do email:

 

//você cria um novo LoadVars
var email:LoadVars = new LoadVars();

//depois armazena os dados dos campos de texto.
email.emailFrom = emailFrom_txt.text; //quem envia
email.emailSubject = emailSubject_txt.text; //assunto
email.emailBody = emailBody_txt.text; //conteúdo

//envia os dados para o php.
email.sendAndLoad("mail.php", 0,"POST");
};

php:

<?php
// adicione seu e-mail na linha abaixo
$recipient = "seuemail@host.org";

$subject = "formulrio de contato";

$msg = "nome: {$_POST["emailFrom"]}\n\n E-mail:{$_POST["emailSubject"]}\n\n Mensagem: {$_POST["emailBody"]}\n";

$mailheaders = "MIME-Version: 1.0\r\n";
$mailheaders .= "Content-type: text/html; charset=UTF-8\r\n";

// adicione seu e-mail na linha abaixo
$mailheaders = "From: seuemail@host.org";

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

Se eu não me engano é assim que se faz.

 

Sobre o envio de arquivos via upload pesquise sobre FileReference.

 

Abraços e até mais

 

 

isso passas a variáveis dos component do flash para o php? é que nao estou a conseguir

Compartilhar este post


Link para o post
Compartilhar em outros sites

é assim , esses formulário ja encontrei na net, a questão é mesmo aplicá-los usando os components do flash, pois não consigo criar uma variável através de um component , se alguem me poder dizer como se faz, os components do flash tem é instâncias mas isso não serve para enviar para php pois não reconhece.

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

..............

 

Depende do componente que você ta usando você tem de buscar o parametro que ele representa ao colocar o texto...

 

Por exemplo o combobox você tem que pegar os dados do data que foi selecionado...

 

E php não pega intancia propriamente dita ele pega os campos var dos campos de texto de imput text...

 

ou se você fizer como o freelife disse disser que a instancia.text = o conteudo do campo de texto... que ai sim é uma variavel string... e repassar para uma variavel...

 

por exemplo

 

var nome

var email

var telefone

var cidade

var cep

 

ai tenho os campos de texto imput text instanciados como

 

textnome

textemail

texttelefone

textcidade

textcep

 

para enviar para um arquivo

crio uma nova variavel e dou propriedade a ela

 

enviaOBJ:LoadVars = new LoadVars();

 

enviaOBJ.nome = textnome.text // aqui estou pegando os dados do campo de texto textnome e colocando na variavel enviarOBJ atributo nome

 

E assim por diante...

 

Como você mesmo disse não tem como enviar instancias por isso você transforma o conteudo das mesmas em variáveis que ai sim são entendidas pelo php heheh http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Se vocÊ reparar no meu tutorial e pegar os arquivos vai entender o que eu to falando

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

olarelas

é assim o uso de variáveis da-me cabo da cabeça ;) para ser mais simples aqui vai o exemplo pratico

tenho 5 components do flash 2 TExtimput, 1 combo Box 2 botoes.

os textimput tem o nome de : nome e outro de email

o combo box tem o nome (instancia) de pagamento e tem a data [tp, Mb, Cheque]

os botoes são simples....

 

como faço para chamar as variáveis desse components? e qual o comando o botão send (acho que este ja percebi)

 

obrigado

com esta ajuda não chateio mais ehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nos imputText que tem instancia nome e email você vai colocar a variavel la em propriedades tem um outro campo chamado VAR lá você coloca nome no imput nome e email no que estiver como e-mail.

 

Não esqueça de declarar no action

nome = "";

email = "";

 

para entrar direto com campo em branco!

 

para pegar o valor dos combobox você coloca a instancia neles... e depois digita combobox.value que ele vai dar o valor da combo selecionada......

 

Então para funcionar

 

Se faz assim

 

Coloca um botão na tela e diga que é o botão enviar na intancia

 

e no action fica assim

 

enviar.onPress = function(){

var enviaOBJ:LoadVars = new LoadVars();

enviarOBJ.nome = nome;

enviarOBJ.email = email;

enviarOBJ.pagamento = pagamento.value;

enviarOBJ.sendAndLoad("mail.php", 0,"POST");

}

 

ai tu cria seu mail.php para pegar essas informações né...

 

Como o freelife mostrou lá em cima

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim

 

<?php

$nome = $_POST['nome'];
$email = $_POST['email'];
$pagamento = $_POST['pagamento'];

// adicione seu e-mail na linha abaixo
$recipient = "seuemail@host.org";

$subject = "formulrio de contato";

$msg = "$nome\n\n$email\n\n$pagamento";

$mailheaders = "MIME-Version: 1.0\r\n";
$mailheaders .= "Content-type: text/html; charset=UTF-8\r\n";

// adicione seu e-mail na linha abaixo
$mailheaders = "From: seuemail@host.org";

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

ois

nao estou a conseguir mesmo :(

olha tenho o fla dentro desta directoria :

 

Documento Fla

 

dê uma olhadela e depois envie-me para Medida Criativa

isso é parte do formulário, mas conseguindo por isso a trabalhar o resto já fica fácil

fica bem

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom estou a cá a responder novamente

 

Caro amigo português :D

 

Ai vais sua maneira de programar:

 

stop ();
enviar.onPress = function(){
	var enviarOBJ:LoadVars = new LoadVars;
	enviarOBJ.nome = nome.text;
	enviarOBJ.telefone = telefone.text;
	enviarOBJ.email = email.text;
	enviarOBJ.morada = morada.text;
	enviarOBJ.cp = cp.text;
	enviarOBJ.nif = nif.text;
	enviarOBJ.pagamento = pagamento.value;
	enviarOBJ.sendAndLoad("mail.php", 0,"POST");
}

Código PHP:

<?php
// adicione seu e-mail na linha abaixo
$recipient = "seuemail@seuprovedor.com";

$subject = "formulário de contato";

$msg = "nome: {$_POST["nome"]}\n\n E-mail:{$_POST["email"]}\n\n Telefone: {$_POST["telefone"]}\n\n Morada: {$_POST["morada"]}\n\n Cep: {$_POST["cp"]}\n\n Nif: {$_POST["nif"]}\n\n Pagamento: {$_POST["pagamento"]}\n";

$mailheaders = "From: {$_POST["email"]}";

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

Com este código estou a acreditar que deve funcionar em seu php caso ele tenha todas as variáveis possiveis.

 

Depois de ver e fazer ele funcionar, por favor trate de colocar um if para testar se os campos estão preenchidos ou não, para que o cliente não envie a informação pela metade.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

ois

nao sei se tentaste fazer do teu lado, no meu fiz como disseste mas não recebi email nenhum :( sinceramente já não sei o que fazer para isto dar certo, será por causa dos post do php? vou fazer aqui umas experiências malucas para ver se da......

 

se tiveres alguma outra sugestão diz

fica bem e obrigado B)

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem a unica forma de receber o email é configurar o php assim :

<?php


$recipient = "medida criativa <geral@medidacriativa.pt>";


$destino = "geral@medidacriativa.pt";
$assunto = "Mensagem enviada pelo SmallS";

echo $destino;
echo $assunto;

mail("$destino","$assunto", "Nome:$nome\n  Morada:$morada\n Código Postal:$cp\n Telefone:$phone\n Nif:$nif\n Email:$email\n Formas de pagamento:$pagamento\n Dominio:$dominio\n Dominio Extensao:$dominio_extensao\n Quem somos _X:$qx\n  Quem somos _y:$qy\n logotipo _X:$lx\n logotipo _y:$ly\n contactos _X:$cx\n contactos _Y:$cy\n Efeitos imagem:$efeitos\n browse:$file\n ","From:$nome<$email>");

?>

e o flash tem que ter

enviar.onPress = function(){
	var enviarOBJ:LoadVars = new LoadVars;
	nome = nome.text;
	enviarOBJ.telefone = telefone.text;
	enviarOBJ.email = email.text;
	enviarOBJ.morada = morada.text;
	enviarOBJ.cp = cp.text;
	enviarOBJ.nif = nif.text;
	enviarOBJ.pagamento = pagamento.value;
	loadVariablesNum("mail.php", 0,"POST");}

 

a grande questão é que as variáveis vem vazias

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa desculpe amigo culpa minha :D

 

ai vai os código... dessa vez testado...

 

Flash:

System.useCodepage = true;

stop ();

enviar.onPress = function(){
	var pgOBJ:LoadVars = new LoadVars;
	var enviarOBJ:LoadVars = new LoadVars;
	enviarOBJ.nome = nome.text;
	enviarOBJ.telefone = telefone.text;
	enviarOBJ.email = email.text;
	enviarOBJ.morada = morada.text;
	enviarOBJ.cp = cp.text;
	enviarOBJ.nif = nif.text;
	enviarOBJ.pagamento = pagamento.value;
	enviarOBJ.sendAndLoad("mail.php", pgOBJ,"POST");
	nextFrame();
}

php:

<?php
$nome = $_POST['nome'];
$email = $_POST['email'];
$telefone = $_POST['telefone'];
$morada = $_POST['morada'];
$cp = $_POST['cp'];
$nif = $_POST['nif'];
$pagamento = $_POST['pagamento'];
// adicione seu e-mail na linha abaixo

$recipient = "medida criativa <geral@medidacriativa.pt>";

$subject = "formulário de contato";

$msg = "nome: $nome\n\n E-mail: $email\n\n Telefone: $telefone\n\n Morada: $morada\n\n Cep: $cp\n\n Nif: $nif\n\n Pagamento: $pagamento\n";

$mailheaders = "From: $email";

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

Resultado do e-mail que eu recebi como teste

 

nome: teste

 

E-mail: teste@teste.com

 

Telefone:

 

Morada:

 

Cep: hahaha

 

Nif: teste

 

Pagamento: Transferência Bancária

 

Recebi assim pois não digitei nem telefone nem morada :)

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ois

já se viu que do teu lado dá, no meu continuo sem receber email, será que é do servidor? o que é preciso pedir ao servidor para alterar isto? porque não vejo outra razão para não dar.

 

obrigado :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai tens que conversar para ver se o seu servidor ta com suporte a php...

 

E se os nomes dos arquivos estão corretos, o arquivo php tem de se chamar php e deve estar no mesmo local que o arquivo que chama o formulário para que funcione como digitei ai.

 

Caso contrario tens de dizer o caminho de onde está o php

aqui:

enviarOBJ.sendAndLoad("mail.php", pgOBJ,"POST");

 

Modifique a linha do mail.php para o local onde se encontra o seu php

 

Verifique também se o seu servidor não está excluindo como SPAM a mensagem enviada pelo site

 

Teste em um gmail, hotmail, yahoo... ou outro email qualquer para ter certeza que é o servidor

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

ois

recebi este comentário do meu servidor

Em alojamento windows, será necessário que alterem o script que efectua o envio do email, para efectuar autenticação antes do envio. Caso contrário não será possível efectuarem o envio.

basicamente esta a dizer que tenho que mudar o codigo certo?

 

1 abraço

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Edited!

 

Aqui vai uma das soluções

 

no código php coloque

 

$host = "mail.exemplo.com";
$username = "smtp_username";
$password = "smtp_password";

//antes de enviar

$smtp = Mail::factory('smtp',   array ('host' => $host, 'auth' => true, 'username' => $username, 'password' => $password));

$mail = $smtp->send($recipient, $subject, $msg, $mailheaders);

Acredito que deve ficar assim nunca fiz nada parecido...

 

Abraços

 

Site da onde tirei a informação http://email.about.com/od/emailprogramming...qt/et073006.htm

Compartilhar este post


Link para o post
Compartilhar em outros sites

ois

ja consegui enviar o ficheiro e receber, so tive que colocar no flash a condição para verificar o email.

agora ocorre-me outro problema...o que form que te mandei era uma parte, a questão é que tenho outro form no mesmo movie clip mas numa frame anterior.

 

a questão é : como consigo passar as variáveis de um frame para outro , para que no final ele me envie todo o formulario, como está agora tenho um botao que diz step2 que nos envia para a 2 parte do form e depois tenho um finalizar e ai sim envia as variaveis para o php, o problema é que so recebo as variaveis da ultima frame onde esta o botao enviar, as outras não vão.....

 

será facil?

 

fica bem e obrigadão pela ajuda

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.