Jump to content


Photo

Formulario Aspemail


  • Faça o login para participar
4 replies to this topic

#1 VCdesign

VCdesign

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Feminino
  • Localidade:Canada

Posted 15/03/2010, 13:04

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;

                };

}
//

Edição feita por: Renan L. Queiroz, 16/03/2010, 08:58.
Inclusão da tag [ code ] para postagem de scripts


#2 ernestop

ernestop

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 15/03/2010, 13:51

Bem não sei se ajuda mas tive um problema similar com o aspmail e só resolvi substituindo os spaces no subject por "_"

Funfo no meu código

[]s

#3 VCdesign

VCdesign

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Feminino
  • Localidade:Canada

Posted 15/03/2010, 14:10

Mas o meu ja esta em aspas!
Ta dificil de resolver o problema... Ja estou 2 semanas na luta, mas ninguem responde... sniff!

#4 VCdesign

VCdesign

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Feminino
  • Localidade:Canada

Posted 24/03/2010, 17:33

Resolvido o problema!
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.coloque aqui seu site.com/nome da sua pagina.asp?nome da variavel colocada na caixa do formulario Flash="+_parent.mesmo nome da variavel+"&variavel="+_parent.mesma variavel+"&variavel="+_parent.mesma variavel+"&variavel="+_parent.mesma variavel+"&"&variavel="+_parent.mesma variavel, "_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 vc criou e vc deve escrever o nome depois de _parent, ex: "&company="+_parent.nome do movieclip.company
 
trace("Name " + _parent.nome da variavel);
trace("Company " + _parent.nome da variavel);
trace("Telephone " + _parent.nome da variavel);
trace("E-mail " + _parent.nome da variavel);
trace("Message " + _parent.nome da variavel);

}

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="nome do seu host - smtp"
Mail.Subject="assunto do seu email - ex: Contato do site tal"
Mail.From="destinatario@empresa.com"
Mail.AddAddress "destinatario@empresa.com"
Mail.Body= "Name: " & Request.QueryString("nome da variavel que vc colocou no Flash") & Chr(13) & _
"Company: " & Request.QueryString("nome da variavel que vc colocou no Flash") & Chr(13) & _
"Telephone: " & Request.QueryString("nome da variavel que vc colocou no Flash") & Chr(13) & _ 
"E-mail: " & Request.QueryString("nome da variavel que vc colocou no Flash") & Chr(13) & _
"Message: " & Request.QueryString("nome da variavel que vc colocou no Flash")

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

%>

Tudo bem simples, mas funcional! Tudo que esta em negrito eh o que vc deve mudar. De resto, nao toque em nenhuma virgula! rsrsrs...
Espero que ajude mais alguem!

Edição feita por: DarkSign, 25/03/2010, 09:55.
Erros de formatação, corrigido


#5 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 25/03/2010, 09:57

Obrigado por ter postado sua solução.

Contudo, havia erros de formatação. Deve-se sempre utilizar a tag [code ] (botão <> ) nesses casos.

Como o code não permite o negrito, liste o que deve ser alterado depois do bloco de código, para facilitar.
Não sabe por onde começar? Que tal pelas Regras ?




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq