Avatar billede tolveren Nybegynder
06. april 2006 - 22:19 Der er 9 kommentarer og
3 løsninger

Asp validering med IF

problem med If sætning:
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Mailer.AddRecipient "mig selv", "gaard@mail.dk"

Mailer.Subject    = "Der er indsat oplysninger i systemet"
BodyText = "navn: "&request.form("navn")& vbCrLf
Mailer.BodyText  = BodyText

If Request.Form("navn") = "Peter" Then

Mailer.SendMail

Else
Response.Write "Der skete en fejl: " & Mailer.Response
End If
Set Mailer = Nothing

Response.Redirect "forsiden.asp"

Conn.Close
Set Conn = Nothing
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Tanken var at validere på feltet: navn. Hvis feltet er udfyldt med navnet Peter så skal mailen sendes.

Håber der er en asp ekspert som vil hjælpe mig igennem valideringen. Håber det kan gøres i asp.
Avatar billede medions Nybegynder
06. april 2006 - 22:24 #1
<%
Dim Mailer
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")

' Her sættes afsender navn og e-mail adresse
Mailer.FromName  = "Afsenders navn"
Mailer.FromAddress= "afsender@domain.dk"

' Afsenders mailserver
Mailer.RemoteHost = "mail.domain.dk"

' Her sættes modtager navn og e-mail adresse
Mailer.AddRecipient "Modtagers navn", "modtager@domain.dk"

' Her sættes overskriften på mailen
Mailer.Subject    = "Dette er en testmail"

' Her sættes selve teksten til mailen
Mailer.BodyText  = "Hej med dig" & VbCrLf & "Dette er en test!"

' Send e-mail og skriv status
if Mailer.SendMail & Request.Form("navn") = "peter" then
  Response.Write "Mailen er afsendt..."
else
  Response.Write "Der skete en fejl: " & Mailer.Response
end if

' Fjern objekt igen
Set Mailer = Nothing
%>

//>Rune
Avatar billede medions Nybegynder
06. april 2006 - 22:25 #2
Og her med din kode:

Mailer.AddRecipient "mig selv", "gaard@mail.dk"

Mailer.Subject    = "Der er indsat oplysninger i systemet"
BodyText = "navn: "&request.form("navn")& vbCrLf
Mailer.BodyText  = BodyText

If Mailer.SendMail & Request.Form("navn") = "Peter" Then
Response.Write("Mailen gik igennem!")

Else
Response.Write "Der skete en fejl: " & Mailer.Response
End If
Set Mailer = Nothing

Response.Redirect "forsiden.asp"

Conn.Close
Set Conn = Nothing

//>Rune
Avatar billede tolveren Nybegynder
06. april 2006 - 22:25 #3
jeg tester lige. tak
Avatar billede tolveren Nybegynder
06. april 2006 - 22:33 #4
Det virker ikke helt. Den sender mail i alle tilfælde
Avatar billede eagleeye Praktikant
06. april 2006 - 22:36 #5
Prøv sådan her din if ætning udvidet med en mere inden i:


If Request.Form("navn") = "Peter" Then
  If Mailer.SendMail then
    Response.Write("Mailen gik igennem!")
  Else
    Response.Write "Der skete en fejl: " & Mailer.Response
  End If
Else
  'Her skiver du hvad der skal ske hvis man ikke har skrevet Peter.
End If
Avatar billede softspot Forsker
06. april 2006 - 22:38 #6
Ja, det er fordi Mailer.SendMail er en del af betingelsen - det skal den ikke være. Du skal have rykket Mailer.SendMail ind bag ved if-sætningen.

Dit problem er nok i første omgang at Request.Form("navn") indeholder navnet i en anden case end den du sammenligner med. En metode til at løse det problem er at tvinge feltet over i f.eks. små bogstaver, så du ved hvad du har at sammenligne med. Det kan gøres således:

If LCase(Request.Form("navn")) = "peter" Then
  Response.Write("Mailen gik igennem!")
  Mailer.SendMail
Else
  Response.Write "Der skete en fejl: " & Mailer.Response
End If
Avatar billede tolveren Nybegynder
06. april 2006 - 22:43 #7
Det virkede jo formidabelt. Kan du forklare:
at: If Mailer.Sendmail then
Den sætning sætter mailen igang. Valideres der på true ?
Avatar billede eagleeye Praktikant
06. april 2006 - 22:46 #8
Denne  Mailer.Sendmail    sender mailen og den giver enten true eller false tilbage alt efter om mailen kunne sendes.

Ja med:
If Mailer.Sendmail Then

Tjekker den på true, man kunne også skrive det helt ud, så dette er det samme:

If Mailer.Sendmail = true Then
Avatar billede tolveren Nybegynder
06. april 2006 - 22:47 #9
Hej softspot. Kan du udvide den der LCase. Så der evt også valideres formen adresse:
If LCase(Request.Form("navn")) = "peter" Then
  Response.Write("Mailen gik igennem!")
  Mailer.SendMail
Else
  Response.Write "Der skete en fejl: " & Mailer.Response
End If
Avatar billede eagleeye Praktikant
06. april 2006 - 22:58 #10
Skal den også tjekke på en bestemt email adresse før den sender?
Avatar billede softspot Forsker
06. april 2006 - 23:00 #11
Ja, men recepten er den samme som for navnet, så der er ikke ret meget mere i det. Hvis begge skal have en bestemt værdi for at mailen kan sendes, så kan du bruge AND mellem de to sammenligninger. Noget i stil med dette:

If LCase(Request.Form("navn")) = "peter" AND LCase(Request.Form("adresse")) = "adressen" Then
  If Mailer.SendMail then
    Response.Write("Mailen gik igennem!")
  Else
    Response.Write "Der skete en fejl: " & Mailer.Response
  End If
Else
  Response.Write "Navn og adresse skal være udfyldt før mailen kan sendes"
End If
Avatar billede tolveren Nybegynder
06. april 2006 - 23:11 #12
Tak for hjælpen til alle. Lukker
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
Kurser inden for grundlæggende programmering

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