Jump to content
Fórum Script Brasil
  • 0

Resposta De Formulário Em Ordem


Flavia Soul

Question

Olá gente...

Estou com um problema a séculos e agora a coisa começou a apertar...

Tenho um script de form mail em Asp que envia os resultados do formulario numa boa, mas o único problema é a ordem que ele chega...

Um exemplo:

Na página form.htm está nessa ordem

Nome:

E-mail:

Telefone:

Comentários:

Mas a resposta que recebo no meu e-mail é essa:

Nome: Flavia

Comentários: blá, blá, blá

E-mail: flavia@.....com.br

Telefone: 215555555

Quero saber como colocar exatamente na ordem que está na página form.

Nome: Flavia

E-mail: flavia@.....com.br

Telefone: 215555555

Comentários: blá, blá, blá

Segue abaixo o script (a página form.htm é normal com o action chamando o envia.asp)

envia.asp

<%@ Language=VBScript %>
<%
'Script para envio de e-mail em formulário

Dim vErro,vSucesso,vErr
vErro = ""
vSucesso = "obrigado.htm"
vErr = "erro.htm"
if Request.Form.Count + Request.QueryString.Count > 0 then
    Call Respform
    Call Resp
end if
'-----------------------------------------------------------
Sub Respform()
    On Error Resume Next
    Dim msg,vData,vHora,vPara,vNomeform,vFrom,vAssunto,vCc,vDom
    vNomeForm = "Contato"
    vPara = "suporte@zonacarioca.com"
    vFrom = "suporte@zonacarioca.com"
    vCc = "suporte@zonacarioca.com"
    vAssunto = "Contato - Zona Carioca"
    vData = Date()
    vData = day(vData) & "/" & month(vData) & "/" & year(vData)
    vHora = Time()
    vHora = hour(vHora) & "h" & minute(vHora) & "min" & second(vHora) & "s"
    msg = "Formulário " & vNomeForm
    msg = msg & " submetido em " & vData & " às " & vHora & VbCrLf & VbCrLf
    if Request.ServerVariables("REQUEST_METHOD") = "POST" then
        for each campo in Request.Form
            if campo <> "B1" and campo <> "B2" and campo <> "B3" and campo <> "B4" then 
                msg = msg & string(60,"-") & vbcrlf
                msg = msg & campo & " : " & Request.Form(campo) & VbCrLf
            end if
        next
    else
        for each campo in Request.QueryString
            if campo <> "B1" and campo <> "B2" and campo <> "B3" and campo <> "B4" then 
                msg = msg & string(60,"-") & vbcrlf
                msg = msg & campo & " : " & Request.QueryString(campo) & VbCrLf
            end if
        next
    end if
    msg = msg & string(60,"*") & vbcrlf
    EnviaEmail msg,vFrom,vPara,vCc,vAssunto
    If Err then
        vErro = Err.number & " : "
        vErro = Err.description
        Err.Clear
    End if
End Sub
'-----------------------------------------------------------
Function EnviaEmail(ByVal p_body, Byval p_from, ByVal p_to, ByVal p_cc, Byval p_subject)
    On Error Resume Next
    Dim iMsg, Flds, iConf, status
    Const SERVIDOR_SMTP = "200.155.18.14"
    status = true
    Set iMsg = Server.CreateObject("CDO.Message")
    Set iConf = Server.CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields
    Flds("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    Flds("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SERVIDOR_SMTP
    Flds("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    Flds.Update
    With iMsg
        Set .Configuration = iConf
        .To = p_to
        .CC = p_cc
        .From = p_from
        .Sender = p_from
        .Subject = p_subject
        .TextBody = p_body
        .Send
    End With
    If Err.number <> 0 Then
        status = false
    End If
    If IsObject(iMsg) Then Set iMsg = Nothing
    If IsObject(Flds) Then Set Flds = Nothing
    If IsObject(iConf) Then Set iConf = Nothing
    EnviaEmail = status
End Function
'-----------------------------------------------------------
Sub Resp()
    if vErro = "" then
        Response.Redirect(vSucesso)
    else
        Response.Redirect(vErr)
    end if
End Sub
%>

Alguém poderia me ajudar? :unsure:

Tks

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0
Guest Marcio Alves Vieira

A linha que controla a ordem das strings está em vermelho

<%@ Language=VBScript %>

<%

'Script para envio de e-mail em formulário

Dim vErro,vSucesso,vErr

vErro = ""

vSucesso = "obrigado.htm"

vErr = "erro.htm"

if Request.Form.Count + Request.QueryString.Count > 0 then

Call Respform

Call Resp

end if

'-----------------------------------------------------------

Sub Respform()

On Error Resume Next

Dim msg,vData,vHora,vPara,vNomeform,vFrom,vAssunto,vCc,vDom

vNomeForm = "Contato"

vPara = "suporte@zonacarioca.com"

vFrom = "suporte@zonacarioca.com"

vCc = "suporte@zonacarioca.com"

vAssunto = "Contato - Zona Carioca"

vData = Date()

vData = day(vData) & "/" & month(vData) & "/" & year(vData)

vHora = Time()

vHora = hour(vHora) & "h" & minute(vHora) & "min" & second(vHora) & "s"

msg = "Formulário " & vNomeForm

msg = msg & " submetido em " & vData & " às " & vHora & VbCrLf & VbCrLf

if Request.ServerVariables("REQUEST_METHOD") = "POST" then

for each campo in Request.Form

if campo <> "B1" and campo <> "B2" and campo <> "B3" and campo <> "B4" then

msg = msg & string(60,"-") & vbcrlf

msg = msg & campo & " : " & Request.Form(campo) & VbCrLf

end if

next

else

for each campo in Request.QueryString

if campo <> "B1" and campo <> "B2" and campo <> "B3" and campo <> "B4" then

msg = msg & string(60,"-") & vbcrlf

msg = msg & campo & " : " & Request.QueryString(campo) & VbCrLf

end if

next

end if

msg = msg & string(60,"*") & vbcrlf

EnviaEmail msg,vFrom,vPara,vCc,vAssunto

If Err then

vErro = Err.number & " : "

vErro = Err.description

Err.Clear

End if

End Sub

'-----------------------------------------------------------

Function EnviaEmail(ByVal p_body, Byval p_from, ByVal p_to, ByVal p_cc, Byval p_subject)

On Error Resume Next

Dim iMsg, Flds, iConf, status

Const SERVIDOR_SMTP = "200.155.18.14"

status = true

Set iMsg = Server.CreateObject("CDO.Message")

Set iConf = Server.CreateObject("CDO.Configuration")

Set Flds = iConf.Fields

Flds("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

Flds("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SERVIDOR_SMTP

Flds("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

Flds.Update

With iMsg

Set .Configuration = iConf

.To = p_to

.CC = p_cc

.From = p_from

.Sender = p_from

.Subject = p_subject

.TextBody = p_body

.Send

End With

If Err.number <> 0 Then

status = false

End If

If IsObject(iMsg) Then Set iMsg = Nothing

If IsObject(Flds) Then Set Flds = Nothing

If IsObject(iConf) Then Set iConf = Nothing

EnviaEmail = status

End Function

'-----------------------------------------------------------

Sub Resp()

if vErro = "" then

Response.Redirect(vSucesso)

else

Response.Redirect(vErr)

end if

End Sub

%>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.6k
×
×
  • Create New...