webForum webForum sponsras med lina och serverplats av Binero AB

Gå tillbaka   webForum > Utveckling > Webbutveckling > ASP

ASP Diskussioner om Active Server Pages, med relaterade scriptspråk (klassisk asp).

Svar
 
Trådverktyg Visningsalternativ
Äldre 2005-09-16, 07:08   #1
Nova
Medlem
 
Registrerad: 2005-02-06
Ort: Luleå
Inlägg: 241
Lösningar: 0
Hjälp med funktion mot sqlinjekt

Hittade denna här på forumet av Erik Juhlin
Kod:
Function CheckInputData(ByVal sInputData)
	Dim objRegExp
	Set objRegExp = New RegExp
	objRegExp.Pattern = "[^\s\d,]"
	CheckInputData = Not objRegExp.Test(sInputData)
	Set objRegExp = Nothing
End Function

If Not CheckInputData(participantId) Then
	Response.Write "Incorrect input data."
	Response.End
End If

Denna kod
Kod:
 where id = " & CheckInputData(request.QueryString("id")) & " AND anv_nr = " & session("anv_nr") & ""
Ger
Kod:
DELETE from hund_dagkoppling where id = True AND anv_nr = 90
Men id bör ju vara en siffra och inte true, för då tar det alla, varför blir det tokigt?

//Kockar som jag ska koka soppa inte hålla på med hemsidor!
__________________
Asp Nybörjare
Nova besöker inte forumet just nu   Svara med citat
Äldre 2005-09-16, 07:17 Markerad som löst av Nova   #2
@nders
Moderator
Marsvin
 
@nderss avatar
 
Registrerad: 2000-06-30
Ort: Nyköping
Inlägg: 26 816
Lösningar: 3134
Funktionen kontrollerar bara om värdet är giltigt, och gör inga ändringar på något värde. Exempel:
Kod:
lID = request.QueryString("id")
If CheckInputData(lID)  then
      ' ok, då kör vi...
      ".....where id = " & lID & " AND anv_nr = " & session("anv_nr") & ""
End if
...Om jag tolkar funktionen rätt vill säga.

mvh
__________________
@aviddevguy
@nders besöker inte forumet just nu   Svara med citat
Äldre 2005-09-16, 07:31   #3
Nova
Medlem
 
Registrerad: 2005-02-06
Ort: Luleå
Inlägg: 241
Lösningar: 0
Tackar @nders
Tur att detta forum finns:)
__________________
Asp Nybörjare
Nova besöker inte forumet just nu   Svara med citat
Äldre 2005-09-16, 07:46   #4
Erik Juhlin
Medlem
 
Erik Juhlins avatar
 
Registrerad: 2000-05-27
Ort: Helsingborg
Inlägg: 7 625
Lösningar: 628
Dock är just den funktionen endast tänkt att validera kommaseparerade strängar som man använder i SQL.
För vanliga numeriska tal så är det smidigare att bara köra med CLng.
Kod:
lID = CLng(request.QueryString("id"))
where id = " & lID & " AND anv_nr = " & CLng(session("anv_nr"))
Det funkar i.o.f.s. att skriva så som @nders skrev eftersom att mellanslag och kommatecken inte kan göra någon skada. Men som sagt är den gjort för kommaseparerade strängar. De kan man inte typkonvertera, då får man göra nåt liknande som funktionen jag gjort.

Senast redigerad av Erik Juhlin, 2005-09-16 klockan 07:52
Erik Juhlin besöker inte forumet just nu   Svara med citat
Svar
webForum > Utveckling > Webbutveckling > ASP

Trådverktyg
Visningsalternativ

Forumregler
Du får inte posta nya trådar
Du får inte posta svar
Du får inte bifoga filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är av
HTML-kod är av

Forumhopp


Alla tider är i GMT +1. Klockan är nu 15:18.


Powered by: vBulletin Version 3.8.6
Copyright © webForum