Avatar billede asker Nybegynder
24. februar 2003 - 14:38 Der er 7 kommentarer og
1 løsning

Validator

Hej Alle

Jeg har den her kode (og den virker perfekt)

<%

Dim eAddy
eAddy = Request.Form("eaddy")
response.write( eAddy )

if eAddy = "" then
response.write("<center><font color='#FF0000'>Du har ikke udfyld din email addresse.</font></center>")

else



If InStr(1,eAddy,"@",vbTextCompare) = 0 then

response.write(" <center><font color='#FF0000'>er ikke en lovlig Email addresse.</font></center>")

else

set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("SpawnedMailer.mdb"))

set rsMail = Server.CreateObject("ADODB.recordset")
rsMail.Open "SELECT * FROM MailingList WHERE MailingAddy='" & eAddy & "'", conn

    If not rsMail.EOF Then
        If rsMail("MailingAddy") = eAddy Then

            response.write("  <center><font color='#FF0000'>er allerede tilmeldt nyhedsbrevet.</font></center>")

        End if

    Else


            mailSQL = "INSERT into MailingList (MailingAddy) VALUES ('" & eAddy & "');"
            conn.Execute mailSQL
            response.write(" er tilføjet nyhedsbrevet!")
    End if


rsMail.close
conn.close
end if
end if
%>

******************************************

Men jeg vil gerne tjekke på nogle flere værdier
Så jeg skal have putte den her kode ind i den øverste (og få det til at virk.

Samt have en som også tjekker æøå

Her er koden:

***************************************************


' (4) Anything in front of the @ ? '--------------------------------------------------------
    If Len(Left(eAddy,InStr(eAddy,"@") - 1)) = 0 Then
    response.write(" <center><font color='#FF0000'>Der mangler noget foran ""@"" i e-mail adressen.</font></center>")

    ' (5) At least one "." (period) '-----------------------------------------------------------
    If InStr(eAddy,".") = 0 Then
    response.write(" <center><font color='#FF0000'>E-mail adressen skal indeholde mindst eet punktum.</font></center>")

    ' (6) Max. 3 characters after the last "." '------------------------------------------------
    If (Len(eAddy) - InStrRev(eAddy,".") > 3) Then
    response.write(" <center><font color='#FF0000'>Der er for mange tegn efter sidste punktum i e-mail adressen..</font></center>")

    ' (7) Check for ".." '----------------------------------------------------------------------
    If InStr(eAddy,"..") <> 0 Then
    response.write(" <center><font color='#FF0000'>Der m&aring; ikke v&aelig;re to punktummer lige op af hinanden i e-mail adressen.</font></center>")

    ' (8) At least 2 charecters after the last "." '--------------------------------------------
    If (Len(eAddy) - InStrRev(eAddy,".") < 2) Then
    response.write(" <center><font color='#FF0000'>Der skal v&aelig;re mindst to tegn efter sidste punktum i e-mail adressen.</font></center>")

    ' (9) No "_" after "@" '--------------------------------------------------------------------
    If ((InStr(eAddy,"_") <> 0) AND (InStrRev(eAddy,"_") > InStrRev(eAddy,"@"))) Then
    response.write(" <center><font color='#FF0000'>Der m&aring; ikke v&aelig;re en underscore (_) efter ""@"" i e-mail adressen..</font></center>")
        Exit Function
    End If

    ' (1) Check længden '------------------------------------------------------------------------
    If Len(eAddy) < 5 Then
    response.write(" <center><font color='#FF0000'>E-mail adressen er for kort.</font></center>")
else

' (3) Check for "@." og ".@" '--------------------------------------------------------------
    If ((InStr(eAddy,"@.") <> 0) OR (InStr(eAddy,".@") <> 0)) Then
    response.write(" <center><font color='#FF0000'>er m&aring; ikke v&aelig;re et punktum lige op af et ""@"" i e-mail adressen.</font></center>")
else

'    if eAddy = "" then
'    response.write("<center><font color='#FF0000'>Du har ikke udfyld din email addresse.</font></center>")
else



If InStr(1,eAddy,"@",vbTextCompare) = 0 then
response.write(" <center><font color='#FF0000'>er ikke en lovlig Email addresse.</font></center>")
else

    ' (12) Check TLD '--------------------------------------------------------------------------
    ValidTLD    = False
    ValidTLDs = Array("dk","com","edu","gov","int","mil","net","org","af","al","dz","as","ad","ao","ai","aq","ag","ar","am","aw","ac","au","at","az","bs","bh","bd","bb","by","be","bz","bj","bm","bt","bo","ba","bw","bv","br","io","bn","bg","bf","bi","kh","cm","ca","cv","ky","cf","td","cs","cl","cn","cx","cc","co","km","cg","ck","cr","ci","hr","cu","cy","cz","dj","dm","do","tp","ec","eg","sv","gq","er","ee","et","fk","fo","fj","fi","fr","gf","pf","tf","ga","gm","ge","de","gh","gi","gr","gl","gd","gp","gu","gt","gg","gn","gw","gy","ht","hm","va","hn","hk","hu","is","in","id","ir","iq","ie","im","il","it","jm","jp","je","jo","kz","ke","ki","kp","kr","kw","kg","la","lv","lb","ls","lr","ly","li","lt","lu","mo","mk","mg","mw","my","mv","ml","mt","mh","mq","mr","mu","yt","mx","fm","md","mc","mn","ms","ma","mz","mm","na","nr","np","nl","an","nc","nz","ni","ne","ng","nu","nf","mp","no","om","pk","pw","ps","pa","pg","py","pe","ph","pn","pl","pt","pr","qa","re","ro","ru","rw","kn","lc","vc","ws","sm","st","sa","sn","sc","sl","sg","sk","si","sb","so","za","gs","es","lk","sh","pm","sd","sr","sj","sz","se","ch","sy","tw","tj","tz","th","tg","tk","to","tt","tn","tr","tm","tc","tv","ug","ua","ae","gb","uk","us","um","uy","su","uz","vu","ve","vn","vg","vi","wf","eh","ye","yu","cd","zm","zr","zw")
    TLD        = Right(eAddy,(Len(eAddy) - InStrRev(eAddy,".")))

    For i = 0 TO UBound(ValidTLDs)
        If TLD = ValidTLDs(i) Then
            ValidTLD = True
            Exit For
        End If
    Next
   
    If NOT ValidTLD Then
    response.write(" <center><font color='#FF0000'>E-mail adressens dom&aelig;ne-endelse (f.eks. "".dk"" el. "".com"") er ikke korrekt.</font></center>")
        Exit Function
    End If


' (10) Check for multiple "@" '-------------------------------------------------------------
    Ats = 0
    For i = 1 TO Len(eAddy)
        If Mid(eAddy,i,1) = "@" Then
            Ats = Ats + 1
        End If
    Next
    If Ats > 1 Then
    response.write(" <center><font color='#FF0000'>E-mail adressen indeholder for mange ""@"".</font></center>")
        Exit Function
    End If

' (13) Check each character '---------------------------------------------------------------
    For i = 1 TO Len(eAddy)
        If NOT IsNumeric(Mid(eAddy,i,1)) AND (LCase(Mid(eAddy,i,1)) < "a" OR LCase(Mid(eAddy,i,1)) > "z") AND Mid(eAddy,i,1) <> "_" AND Mid(eAddy,i,1) <> "." AND Mid(eAddy,i,1) <> "@" AND Mid(eAddy,i,1) <> "-" Then
        response.write(" <center><font color='#FF0000'>E-mail adressen indeholder et eller flere ugyldige tegn..</font></center>")
        Exit Function
        End If
    Next

    ' (14) Addresses to be excluded '-----------------------------------------------------------
    Exclude = Array("test@test.com") ' Enter addresses to be excluded (perhaps due to abuse).

    For i = 0 TO UBound(Exclude)
        If eAddy= Exclude(i) Then
        response.write(" <center><font color='#FF0000'>Der kan ikke sendes til den valgte e-mail adresse da den er ekskluderet pga. misbrug.</font></center>")
            Exit Function
        End If
    Next
Avatar billede the_bma_man Nybegynder
24. februar 2003 - 14:45 #1
Og - hvad er det så lige, du gerne vil have hjælp til?
Avatar billede asker Nybegynder
24. februar 2003 - 15:55 #2
Som du kan se i den øverste kode der bliver tjekket for om emailen er tom eller om den indeholder i @.

Men jeg vil gerne også tjekke for en masse andet bla. at der ikke skal være æøå m.m.

Jeg har jeg fundet den nederste kode .....så nu vil jeg gerne have hjælp til at putte noget af den kode ind i min oprindelige kode (den øverste)
Avatar billede soes Nybegynder
24. februar 2003 - 18:25 #3
ok, det er nok bare mig, men i dette tilfaelde vil jeg altsaa bruge reg.exp Jeg ved godt at du ikke kan faa samme detaljeret fejl beskrivelse tilbage, men det er altsaa kun en email adresse. jeg synes at det som du har gang i virker som en omgang overkill.
Avatar billede the_bma_man Nybegynder
25. februar 2003 - 12:28 #4
Du kan bare tage de dele af koden, som du vil bruge, og lave en if-endif omkring dem - akkurat ligesom du har gjort ved den regel, du allerede har implementeret.
Avatar billede oasen Nybegynder
25. februar 2003 - 21:28 #5
Som soes er inde på, ville det være langt smartere at bruge Reg Exp. Uanset hvor meget validering, du foretager kan du alligevel ikke tjekke, om den tilhører dem uden at sende dem en mail, de skal aktivere.

Jeg har lavet denne funktion til dig, der tjekker adressen lige så godt som den ovenstående "pløre":

Function MailOK(Streng)
    Dim myReg
    Set myReg = New RegExp
    myReg.IgnoreCase = True
    myReg.Pattern = "^[a-z0-9\.\-\_]+\@[a-z0-9\.\-]+\.[a-z]{2,4}$"
    MailOK = myReg.Test(Streng)
End Function

If MailOK("min@mail.dk") Then
  Response.Write "Adressen er gyldig!"
Else
  Response.Write "Adressen er ikke gyldig!"
End If
Avatar billede oasen Nybegynder
25. februar 2003 - 21:54 #6
I tilfælde af, at du insisterer har jeg sat det sammen til dig her (inkl. check for danske tegn):

============================================================================


<%

Dim eAddy, MailGyldig
eAddy = Request.Form("eaddy")
response.write( eAddy )


'(4) Anything in front of the @ ? '--------------------------------------------------------
If Len(Left(eAddy,InStr(eAddy,"@") - 1)) = 0 Then
    response.write(" <center><font color='#FF0000'>Der mangler noget foran ""@"" i e-mail adressen.</font></center>")
' (5) At least one "." (period) '-----------------------------------------------------------
ElseIf InStr(eAddy,".") = 0 Then
    response.write(" <center><font color='#FF0000'>E-mail adressen skal indeholde mindst eet punktum.</font></center>")
' (0) May not include æ, ø, å '-----------------------------------------------------------
ElseIf InStr(LCase(eAddy),"æ") Or InStr(LCase(eAddy),"ø") Or InStr(LCase(eAddy),"å") Then
    response.write(" <center><font color='#FF0000'>Ingen danske tegn.</font></center>")
' (6) Max. 3 characters after the last "." '------------------------------------------------
ElseIf (Len(eAddy) - InStrRev(eAddy,".") > 3) Then
    response.write(" <center><font color='#FF0000'>Der er for mange tegn efter sidste punktum i e-mail adressen..</font></center>")
' (7) Check for ".." '----------------------------------------------------------------------
ElseIf InStr(eAddy,"..") <> 0 Then
    response.write(" <center><font color='#FF0000'>Der m&aring; ikke v&aelig;re to punktummer lige op af hinanden i e-mail adressen.</font></center>")
' (8) At least 2 charecters after the last "." '--------------------------------------------
ElseIf (Len(eAddy) - InStrRev(eAddy,".") < 2) Then
    response.write(" <center><font color='#FF0000'>Der skal v&aelig;re mindst to tegn efter sidste punktum i e-mail adressen.</font></center>")
' (9) No "_" after "@" '--------------------------------------------------------------------
ElseIf ((InStr(eAddy,"_") <> 0) AND (InStrRev(eAddy,"_") > InStrRev(eAddy,"@"))) Then
    response.write(" <center><font color='#FF0000'>Der m&aring; ikke v&aelig;re en underscore (_) efter ""@"" i e-mail adressen..</font></center>")
' (1) Check længden '------------------------------------------------------------------------
ElseIf Len(eAddy) < 5 Then
    response.write(" <center><font color='#FF0000'>E-mail adressen er for kort.</font></center>")
' (3) Check for "@." og ".@" '--------------------------------------------------------------
ElseIf ((InStr(eAddy,"@.") <> 0) OR (InStr(eAddy,".@") <> 0)) Then
    response.write(" <center><font color='#FF0000'>er m&aring; ikke v&aelig;re et punktum lige op af et ""@"" i e-mail adressen.</font></center>")
Else
    MailGyldig = True
End If


' (12) Check TLD '--------------------------------------------------------------------------
ValidTLDs = Array("dk","com","edu","gov","int","mil","net","org","af","al","dz","as","ad","ao","ai","aq","ag","ar","am","aw","ac","au","at","az","bs","bh","bd","bb","by","be","bz","bj","bm","bt","bo","ba","bw","bv","br","io","bn","bg","bf","bi","kh","cm","ca","cv","ky","cf","td","cs","cl","cn","cx","cc","co","km","cg","ck","cr","ci","hr","cu","cy","cz","dj","dm","do","tp","ec","eg","sv","gq","er","ee","et","fk","fo","fj","fi","fr","gf","pf","tf","ga","gm","ge","de","gh","gi","gr","gl","gd","gp","gu","gt","gg","gn","gw","gy","ht","hm","va","hn","hk","hu","is","in","id","ir","iq","ie","im","il","it","jm","jp","je","jo","kz","ke","ki","kp","kr","kw","kg","la","lv","lb","ls","lr","ly","li","lt","lu","mo","mk","mg","mw","my","mv","ml","mt","mh","mq","mr","mu","yt","mx","fm","md","mc","mn","ms","ma","mz","mm","na","nr","np","nl","an","nc","nz","ni","ne","ng","nu","nf","mp","no","om","pk","pw","ps","pa","pg","py","pe","ph","pn","pl","pt","pr","qa","re","ro","ru","rw","kn","lc","vc","ws","sm","st","sa","sn","sc","sl","sg","sk","si","sb","so","za","gs","es","lk","sh","pm","sd","sr","sj","sz","se","ch","sy","tw","tj","tz","th","tg","tk","to","tt","tn","tr","tm","tc","tv","ug","ua","ae","gb","uk","us","um","uy","su","uz","vu","ve","vn","vg","vi","wf","eh","ye","yu","cd","zm","zr","zw")
TLD = Right(eAddy,(Len(eAddy) - InStrRev(eAddy,".")))

For i = 0 TO UBound(ValidTLDs)
    If TLD = ValidTLDs(i) Then
        ValidTLD = True
        Exit For
    End If
Next
   
If NOT ValidTLD Then
    response.write(" <center><font color='#FF0000'>E-mail adressens dom&aelig;ne-endelse (f.eks. "".dk"" el. "".com"") er ikke korrekt.</font></center>")
    MailGyldig = False
ElseIf

Ats = 0
For i = 1 TO Len(eAddy)
    If Mid(eAddy,i,1) = "@" Then
        Ats = Ats + 1
    End If
Next

If Ats > 1 Then
    response.write(" <center><font color='#FF0000'>E-mail adressen indeholder for mange ""@"".</font></center>")
        MailGyldig = False
End If


' (13) Check each character '---------------------------------------------------------------
For i = 1 TO Len(eAddy)
    If NOT IsNumeric(Mid(eAddy,i,1)) AND (LCase(Mid(eAddy,i,1)) < "a" OR LCase(Mid(eAddy,i,1)) > "z") AND Mid(eAddy,i,1) <> "_" AND Mid(eAddy,i,1) <> "." AND Mid(eAddy,i,1) <> "@" AND Mid(eAddy,i,1) <> "-" Then
        response.write(" <center><font color='#FF0000'>E-mail adressen indeholder et eller flere ugyldige tegn..</font></center>")
            MailGyldig = False
    End If
Next

' (14) Addresses to be excluded '-----------------------------------------------------------
Exclude = Array("test@test.com") ' Enter addresses to be excluded (perhaps due to abuse).

For i = 0 TO UBound(Exclude)
    If eAddy= Exclude(i) Then
        response.write(" <center><font color='#FF0000'>Der kan ikke sendes til den valgte e-mail adresse da den er ekskluderet pga. misbrug.</font></center>")
        MailGyldig = False
    End If
Next




If MailGyldig Then

    set conn=Server.CreateObject("ADODB.Connection")
    conn.Provider="Microsoft.Jet.OLEDB.4.0"
    conn.Open(Server.Mappath("SpawnedMailer.mdb"))

    set rsMail = Server.CreateObject("ADODB.recordset")
    rsMail.Open "SELECT * FROM MailingList WHERE MailingAddy='" & eAddy & "'", conn

    If not rsMail.EOF Then
        If rsMail("MailingAddy") = eAddy Then
            response.write("  <center><font color='#FF0000'>er allerede tilmeldt nyhedsbrevet.</font></center>")
        Else
            mailSQL = "INSERT into MailingList (MailingAddy) VALUES ('" & eAddy & "');"
            conn.Execute mailSQL
            response.write(" er tilføjet nyhedsbrevet!")
        End If
    End If
End If


rsMail.close
conn.close
end if
end if

%>
Avatar billede asker Nybegynder
01. marts 2003 - 14:20 #7
Hej Oasen >> så er jeg tibage - og ja jeg insisterer - så jeg vil tjekke den her i aften
Avatar billede oasen Nybegynder
03. marts 2003 - 12:35 #8
Fungerer det eller...?
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