Avatar billede sbjerre Nybegynder
11. juli 2005 - 14:51 Der er 5 kommentarer og
1 løsning

Regular expressions til validering af web request id

Hej

Jeg skal lave en regex der kan validere et id input på en webside
som f.eks.
http://www.minside.dk?id=XXXXXX

Jeg skal sikre mig at id er et tal mellem 0 - 999999.

Hvis id'et i mit request er udenfor denne mængde eller er ingenting (id=) skal id erstattes med 0.

Jeg har lavet følgende kode som så ud til at virke helt fint på min egen maskine men fejlede da jeg lagde den på produktionsserveren. Hvad kan være galt?

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

Dim liId
liId = Request("id")

If liId = "" Then
  liId = 0
End If

Dim objRegExpr

Set objRegExpr = New regexp

objRegExpr.Pattern = "[0-9]{1,6}"
objRegExpr.Global = True
objRegExpr.IgnoreCase = True

Dim expressionmatch

expressionmatch = objRegExpr.Test(liId)

If expressionmatch Then
  liId = 0
End If

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

Jeg koder normalt i .NET og er derfor meget lidt inde i traditionel ASP og VBscript så det er muligt at jeg laver nogle helt basale fejl.


Mvh Søren
Avatar billede sbjerre Nybegynder
11. juli 2005 - 14:52 #1
Kan det være noget med versionen af IIS?
Avatar billede nielle Nybegynder
11. juli 2005 - 18:20 #2
Mon ikke der skulle have været et Not her:

If Not expressionmatch Then
  liId = 0
End If

- ellers bliver alle de lovlige id'er jo erstattet med 0.
Avatar billede nielle Nybegynder
11. juli 2005 - 18:27 #3
Bortset fra det, så synes jeg at det er lidt overkill at bruge en RegExp til netop denne validering. Prøv i stedet med:

<%
On Error Resume Next
liId = CInt(Request("id"))
If Err <> 0 Then
    liId = 0
Else
    If liId < 0 OR 999999 < liId Then
        liId = 0
    End If
End If
%>
Avatar billede sbjerre Nybegynder
12. juli 2005 - 08:50 #4
Den der med Not havde jeg rettet på et tidligere tidspunkt (efter at jeg havde skrevet dette oprindelige indlæg), men tak alligevel.

Du har nok ret i at Regex er at skyde gråspurve med missiler, så jeg brugte dit kodeforslag som virkede fint, så jeg takker.

Send et svar hvis du vil inkassere dine velfortjente point :)

Og god sommer
Avatar billede nielle Nybegynder
12. juli 2005 - 17:38 #5
Svar :^)
Avatar billede nielle Nybegynder
12. juli 2005 - 17:38 #6
... doh ...
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