Ir para conteúdo

POWERED BY:

Arquivado

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

VCdesign

[Resolvido] Formulario Aspemail - chega vazio!

Recommended Posts

Oi gente,

 

Tenho um formulario em Flash, descobri que o host da empresa tem o componente persist aspemail, quando clico no botao submit (enviar)o email esta chegando certinho no meu email da empresa, porem, os dados inseridos chegam como undefined (indefinido). Nao esta lendo as variaveis e ja faz 2 semanas que nao acho a solucao!

Tem varios posts sobre o problema, mas a solucao que eh bom... nada!!!

Sera que alguem poderia me enviar um codigo valido? ou corrigir o que esta faltando no meu?

Desde ja agradeco!

 

Segue o codigo que estou usando em Flash e em ASP:

 

ASP - enviar para o meu email:

<%
Set Mail=Server.CreateObject("Persits.MailSender")

Mail.Host="WinMailSrv"
Mail.Subject="Contact from Level Platforms - form"
Mail.From="nome@telsist.com"
Mail.AddAddress "nome@telsist.com"
Mail.Body = "Telsist website - Level Platforms"&Chr(13) & _
"Name:"& Request("name")& Chr(13) & _
"Company:"& Request("company")& Chr(13) & _
"Telephone:"& Request("tel")& Chr(13) & _
"E-mail:"& Request("email")


On Error Resume Next ' catch errors
Mail.Send
If Err <> 0 Then ' error occurred
response.write(Err.Description)
else
Response.Write "<script type='text/javascript'>alert('Thank You.\nYour message has been successfully sent to us! We will handle your request as soon as possible!.');</script>"

Response.Redirect "http://www.telsist.com"
End If
%>

<%Set Mail = Nothing%>

Formulario Flash:

// declarar object LoadVars
// (o container dos seus dados a serem enviados e recebidos)
var email:LoadVars = new LoadVars();

// Sumario dos objectos no palco:

// 1. Botao com nome-de-instancia: sendButton
// 2. MovieClip com o nome-de-instancia: mcContact
// 3. Campos-de-texto input (dentro do mcContact),

// com nomes-de-instancia: name, company, tel e email


// 1. -----------------------------------------------
// acao para o botao

sendButton.onRelease = function() {

email["name"] = mcContact["name"].text;

email.company = mcContact.company.text;

email.tel = mcContact.tel.text;

email.email = mcContact.email.text;

validar_formulario();

};

// Cuidado!
// Com nomes-de-instancia coincidentes com sintaxes usadas pelo Flash
// mcContact.name = "mcContact"; !!!
// Devia ser: mcContact["name"]

// 2. ------------------------------------------------
// Validar os dados enviados (forma simples):

// variavel que vai, ou nao, autorizar o envio

// assumiremos primeiro q tudo esta' certo!

var tudo_certinho:Boolean = true;

// variavel que vai isolar o erro (qual o campo nao preenchido)

var o_que_esta_errado:String = "";

//

// funcao que vai checar o input do usuario

// neste caso, apenas vai saber se existe texto nesses campos ou nao

// e notificar qual o que nao foi preenchido

//

function validar_formulario(){

//

if(mcContact["name"].length == 0){

tudo_certinho = false;

o_que_esta_errado = "preencha o seu nome";

//

}else if(mcContact.company.length == 0){

tudo_certinho = false;

o_que_esta_errado = "preencha o nome da sua firma";

//

}else if(mcContact.tel.length == 0){

tudo_certinho = false;

o_que_esta_errado = "preencha o numero de telefone";

//

}else if(mcContact.email.length == 0){

tudo_certinho = false;

o_que_esta_errado = "preencha o seu email";

}

//

if(tudo_certinho == true){

enviar_receber();

}else{

//

// ouput para o flash

trace(o_que_esta_errado);

//

// ouput no browser

getURL("javascript:alert('"+o_que_esta_errado+"');");

}

}

//

// 3. ------------------------------------------------
// A funcao chamada, quando tudo_certinho == true

// e vai enviar os dados e receber uma resposta do asp

//

function enviar_receber() {

// enviar

email.sendAndLoad("http://www.telsist.com/send.asp",email,"POST");

//

// receber

email.onload = function(success) {

if (success) {

gotoAndPlay("email ok");

} else {

gotoAndPlay("email fail");

}

delete this.onload;

};

}

//

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendo de flash,mas só como sugestão dê um reponse.write no request:

 

<%

response.write resquest 
response.end



Set Mail=Server.CreateObject("Persits.MailSender")

Mail.Host="WinMailSrv"

E veja qual o contéudo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, estranho, até onde eu conheço de ASP (que pra mim tem outras pessoas que sabem muito mais do que eu com certeza, mas até que eu aprendi um pouquinho...rsrs) você precisa definir o tipo de request que você quer não é não? tipo assim:

 

De um formulário você utiliza o request.form

Para String da URL request.querystring ou request.item

 

Você tem que ver que tipo de resposta está vindo pra você, é form, é string ou algum tipo diferente que eu não conheça.

 

Precisando pode chamar.

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

luizsnpjr,

 

As boas práticas recomendam o uso de request.form e request.querystring.

 

Mas para o ASp é indiferente desde que o item que estiver entre "" exista.

 

Eu sempre prefiro definir se é do form ou do querystring para facilitar a a leitura do código.

 

Agora pense da seguinte forma voce tem um página de envio de e-mail que chamada por página mais antigas por querystring e a mesma página chamada por página mais recentes via form. Isto lhe permite ser mais maleavel.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poxa que pena! Tava super empolgada para ver funcionando, mas coloquei o codigo e nem o email chegou...

Nao sei o que ta acontecendo...

Nao sei se o problema eh o ASP ou o Flash.

Se alguem que manja ASP puder verificar meu codigo acima e ver se ta certo ou errado, agradeco!!!

Ja falei com quem manja de Flash e estou com o codigo que ele me passou, por isso acho que o problema ta no ASP...

 

Ai gente, valeu pela forca e dicas, mas eu nao sei nada de ASP. Peguei o codigo que tava no site do host da empresa. So assim o email chegou na minha caixa, pois ate entao nao sabia nem o componente que eu poderia usar, no caso atual Aspemail.

Agora sobre request.form ou querystring nao tenho a minima ideia... Desculpa pela falta de compreensao do assunto.

So sei que tenho que resolver o problema, pois sou nova no trampo e o chefe ta pressionando...

 

Se puderem dar mais um help agradeco!

Compartilhar este post


Link para o post
Compartilhar em outros sites

VCdesign,

 

O código abaixo não era para resover o problema era sópara ver se o flash estava passando o dados para o asp.

<%
response.write "valores do request.querystring " & request.querystring & "<br>"
response.write "valores do request.form " & resquest.form & "<br>"
response.end
%>

O e-mail não foi enviado por causa do response.end que força o termino da execução e você ver o conteúdo do que foi impresso.

 

Faço o teste acima e post o retorno.

 

Se não retornar nada é pq o flash não esta enviando os dados para o ASP. Ai eu não saberia ajudá-la pois não manjo de Flash. Na verdade tenho um certa resistência a sites com Flash.

 

Agora depois de feito o teste retire estas linhas principalmente o response.end pq senão a execução para e não vai enviar o e-mail mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido o problema! Quero agradecer a ajuda de vcs por terem tentado me ajudar.

Vou deixar aqui a resposta para caso alguem perdido (como eu) esteja com o mesmo problema.

 

Formulario Flash + ASP:

 

1. Certifique-se que o servidor tem o componente Aspemail instalado.

 

2. Codigo ActionScript 2.0 dentro do botao enviar (bem simples, pois qdo inventei moda com codigos para o Flash limpar, dar mensagem, etc... dava pau):

 

on (release) {
 	// Endereco da pagina ASP para o botao enviar funcionar
getURL("http://www.[b]coloque aqui seu site[/b].com/[b]nome da sua pagina.asp[/b]?[b]nome da variavel colocada na caixa do formulario Flash[/b]="+_parent.[b]mesmo nome da variavel[/b]+"&[b]variavel[/b]="+_parent.[b]mesma variavel[/b]+"&[b]variavel[/b]="+_parent.[b]mesma variavel[/b]+"&[b]variavel[/b]="+_parent.[b]mesma variavel[/b]+"&"&[b]variavel[/b]="+_parent.[b]mesma variavel[/b], "_self", "GET");


//o trace vai mostrar no output se o flash esta puxando as variaveis. Se vier undefined eh pq a variavel esta dentro de algum movieclip que você criou e você deve escrever o nome depois de _parent, ex: "&company="+_parent.nome do movieclip.company
 
trace("Name " + _parent.[b]nome da variavel[/b]);
trace("Company " + _parent.[b]nome da variavel[/b]);
trace("Telephone " + _parent.[b]nome da variavel[/b]);
trace("E-mail " + _parent.[b]nome da variavel[/b]);
trace("Message " + _parent.[b]nome da variavel[/b]);

}
No ASP (no final, depois que a pessoar preencheu o formulario e enviou, o asp vai redirecionar para a pagina principal do seu site, se der erro ele vai dizer o problema):

 

<%
Set Mail=Server.CreateObject("Persits.MailSender")

Mail.Host="[b]nome do seu host - smtp[/b]"
Mail.Subject="[b]assunto do seu email - ex: Contato do site tal[/b]"
Mail.From="[b]destinatario@empresa.com[/b]"
Mail.AddAddress "[b]destinatario@empresa.com[/b]"
Mail.Body= "[b]Name:[/b] " & Request.QueryString("[b]nome da variavel que você colocou no Flash[/b]") & Chr(13) & _
"[b]Company:[/b] " & Request.QueryString("[b]nome da variavel que você colocou no Flash[/b]") & Chr(13) & _
"[b]Telephone:[/b] " & Request.QueryString("[b]nome da variavel que você colocou no Flash[/b]") & Chr(13) & _ 
"[b]E-mail:[/b] " & Request.QueryString("[b]nome da variavel que você colocou no Flash[/b]") & Chr(13) & _
"[b]Message:[/b] " & Request.QueryString("[b]nome da variavel que você colocou no Flash[/b]")

On Error Resume Next ' catch errors
Mail.Send
If Err <> 0 Then ' error occurred
response.write(Err.Description)
else
response.redirect("http://www.[b]nome do seu site[/b].com")
End If

%>

Tudo bem simples, mas funcional! Tudo que esta em negrito eh o que você deve mudar. De resto, nao toque em nenhuma virgula! rsrsrs...

Espero que ajude mais alguem!

Compartilhar este post


Link para o post
Compartilhar em outros sites

legal irei, disponibilizar no laboratório de script...

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.