Avatar billede artery_graphics Nybegynder
07. juni 2002 - 10:37 Der er 11 kommentarer og
2 løsninger

Mailhandler problem

Jeg har et problem med denne mailformular:
www.walsted.dk/indhold/mail2.asp

Kunden fortæller at de i nogen tilfælde modtager blanke mails, til trods for valideringscheck for hvert indtastningsfelt.. Navn, email og subject .. kommer fint nok frem til modtageren, men BODY feltet er til tider tomt, trods dette i følge afsenderen har været udfyldt.
Hvad kan være problemet?


Mailhandleren ligger her:


<%
sprog=Session("sprog")

Sendername=Request.Form("name")
Senderemail=Request.Form("email")
Subject=Request.Form("subject")
Recipient = "info@walsted.dk"
Body=Request.Form("body")

Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "mail.walsted.dk"
JMail.Sendername = Sendername
JMail.Sender = Senderemail
JMail.Subject = Subject
JMail.AddRecipient Recipient
JMail.Body = Body
JMail.Priority = 3
JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
JMail.Execute
%>
<html>

<head>
<title>Walsteds Baadeværft</title>
<meta NAME="Title" CONTENT="Walsteds Baadeværft">
<link rel="stylesheet" href="indhold.css">
</head>

<body bgcolor="#ffffff" marginwidth="0" marginheight="0" leftmargin="0" topmargin="0">

<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">
  <tr>
    <td>
    <div align="center">
      <span class="tekst"><%if sprog=1 then%>The mail is on it's way ...<%else%>Email
      afsendt ...<%end if%></span></div>
    </td>
  </tr>
</table>

</body>

</html>
Avatar billede tblaster Nybegynder
07. juni 2002 - 10:41 #1
På denne side checker du ikke for om body="" ... prøv at isætte det og så er du sikker på at mailen ikke bliver sendt hvis der intet står i din body!
Avatar billede tblaster Nybegynder
07. juni 2002 - 10:43 #2
Altså som fælgende:

If Request.Form("body") = "" Then
response.write "<br>"
response.write "Du mangler at udfylde body teksten"
response.end

End If
Avatar billede artery_graphics Nybegynder
07. juni 2002 - 10:44 #3
Nej .. men hvis du klikker ovenstående link
(www.walsted.dk/indhold/mail2.asp)

Vil du med view source code kunne se at der her
er et check på body.
Avatar billede tblaster Nybegynder
07. juni 2002 - 10:45 #4
Jeg ville også gøre det samme for name, email og subject. Så er du sikker på at mailen ikke sendes hvis der ikke er indtastet nogen data.
Avatar billede tblaster Nybegynder
07. juni 2002 - 10:47 #5
Jeg forstår ikke hvorfor du bruger java til at checke for det ... det er meget hurtiger at lade din asp kode checke for det ... så har du heller ikke flere sprog i samme kode!
Avatar billede artery_graphics Nybegynder
07. juni 2002 - 10:58 #6
Okay ... men hvordan vil et sådan check se ud i ASP?
Avatar billede jakoba Nybegynder
07. juni 2002 - 10:59 #7
en test i javascript kan du ikke stole på.

pga nimdaskræk har mange slået javascript fra, og så bliver der ikke checket.

Enhver test i javascript bør gentages på serveren. (som tblaster beskriver)

mvh JakobA
Avatar billede jakoba Nybegynder
07. juni 2002 - 11:04 #8
PS. jeg kan ikke finde et enste formfelt i koden til den side. hvis din form bliver submittet ved hjælp af et javascript kald:
    document.formNavn.submit();
vil din onsubmit handelr slet ikke blive aktiveret. Den aktiveres kun ved knaptryk på en submit (eller image) knap  og hved autosubmit med <enter>

mvh JakobA
Avatar billede artery_graphics Nybegynder
07. juni 2002 - 11:04 #9
okay.. det må jeg så se om jeg kan hitte ud af.
Avatar billede tblaster Nybegynder
07. juni 2002 - 11:14 #10
Et asp check ser sådan ud:
If Request.Form("body") = "" Then
response.write "Du mangler at udfylde body teksten"
response.end
End If
Avatar billede artery_graphics Nybegynder
07. juni 2002 - 11:17 #11
Hmm .. jeg bruger da et onsubmit check:


<script>
   
    function vali(hvad){

    if (document.Form.name.value==""){ //
    document.Form.name.focus()
    return false
    }
   
    else if (document.Form.email.value.indexOf('@')==-1||document.Form.email.value==""){ //
    document.Form.email.focus() //
    return false
    }
   
    else if (document.Form.subject.value==""){ //
    document.Form.subject.focus()
    return false
    }
     
    else if (document.Form.body.value==""){ //
    document.Form.body.focus()
    return false
    }
 
    else
    return true
}
</script>
<base target="_self">
</head>

<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

<form name="Form" action="../mailhandler.asp" onsubmit="return vali(this)" method="post">
  <table border="0" width="100%" cellspacing="0" height="100%" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111">
Avatar billede jakoba Nybegynder
07. juni 2002 - 11:23 #12
prøv at teste:
<a href="" onclick="document.Form.submit():return false">test link</a>

med ukorrekt input.
Avatar billede artery_graphics Nybegynder
07. juni 2002 - 13:32 #13
Tak.. jeg fik vist løst det med et ASP check i stedet ...
Håber jeg i hvert fald ...

Mvh.. Lars
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer

Politiets Efterretningstjeneste

Data engineer til PET

Politiets Efterretningstjeneste

Sektionsleder til IT Porteføljestyring i PET

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-supporterelever til Lokal IT på Aalborg Kaserne