Avatar billede Jman Praktikant
04. juni 2003 - 10:16 Der er 11 kommentarer og
1 løsning

Kan man kontrollere "id" i request.querystring overholder ønskede

På en side henter jeg oplysninger ud fra et "ID" i request.querystring("id"). Dette ID har en standard på enten 5 eller 6 tal.
Den side der linkes fra er et opslag i en mappe med pdf-filer... d.v.s. der kan komme "fremmedlegemer", der hedder noget, som ikke overholder de 5/6 tal.
Mit sp. er så:
Kan man kontrollere om request.querystring("id") indeholder 5/6 tal og sende brugeren til en ny side, hvis den ikke overholder "standard" ?
Avatar billede keysersoze Ekspert
04. juni 2003 - 10:24 #1
if len(request.querystring("id")) < 5 or len(request.querystring("id")) > 6 then
  'gør noget
else
  'gør noget andet
end if
Avatar billede ellebaek Nybegynder
04. juni 2003 - 10:26 #2
if len(request.querystring("id")) < 5 OR len(request.querystring("id")) > 6 then
  'så er tallet forkert
else
  'så er tallet i orden
end if
Avatar billede Jman Praktikant
04. juni 2003 - 10:34 #3
hvad så hvis der er 5 karakterer ?
Avatar billede keysersoze Ekspert
04. juni 2003 - 10:38 #4
det er netop det der bliver taget højre for - om tallet er under 5 eller over 6
Avatar billede Jman Praktikant
04. juni 2003 - 10:43 #5
jooou, da ..  Men den skal tage højde for at der kun må være 5 eller 6 tal (og kun tal)
Hvis der f.eks ligger en fil, der hedder 7-10hi.qxd.pdf overholder den antal karakterer, men jeg kan ikke bruge navnet i mit opslag da det ikke overholder "standarden" på 5 eller 6 cifre
Avatar billede Jman Praktikant
04. juni 2003 - 10:43 #6
p.s. jeg har sorteret .qxd.pdf fra inden id-opslaget :)
Avatar billede keysersoze Ekspert
04. juni 2003 - 10:52 #7
så tilføj

IsNumeric(request.querystring("id")) = false
Avatar billede Jman Praktikant
04. juni 2003 - 11:24 #8
ikke forstået ...
skal det med ind i if-sætningen ?
Avatar billede keysersoze Ekspert
04. juni 2003 - 12:01 #9
ja....

if len(request.querystring("id")) < 5 OR len(request.querystring("id")) > 6 or IsNumeric(request.querystring("id")) = false then
Avatar billede eagleeye Praktikant
04. juni 2003 - 13:57 #10
Husk på isNumeric godkender komma tal som tal. Så er 23,464 et OK tal set fra isNumeric.

Du kan evt bruge RegExp som her


str = Request.QueryString("ID")
Set idfRegEx = New RegExp
idfRegEx.Pattern = "^(\d{5,6})$"
if idfRegEx.Test(str) = true then
  'OK tal

else
  'Ikke OK tal
end if
Set idfRegEx = Nothing
Avatar billede soes Nybegynder
04. juni 2003 - 14:02 #11
id = Request.QueryString("id")
If IsNumeric(id) Then
  Select Case Len(id)
      Case 5 Response.Redirect("page.asp")
      Case 6 Response.Redirect("page.asp")
      CaseElse Response.Redirect("bad_page.asp") 
  End Select
End If
Avatar billede Jman Praktikant
04. juni 2003 - 14:07 #12
Jamen det er jo lige til at få tårer i øjnene af - jeg har benyttet mig af keysersoze's løsning, så derfor får han point
Eagleeye - så gralt er det ikke. Vores system generer nemlig autoatisk ordrenumre, men hvis der er printet noget uden for systemet hedder det som regel ikke noget med tal,tal - så hedder det nærmere "SANG TIL FAR" eller lign...
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





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis