Avatar billede mskjoldp Novice
28. april 2005 - 18:39 Der er 13 kommentarer og
2 løsninger

to parametre i SELECT på samme WHERE

Hey E

IIS 5.0/ASP/IE

Hvordan sætter jeg to strings ind i en WHERE?

esk = Request.QueryString("esk")

strSQL = "select * from bem right join fly_status on bem.Bstel = fly_status.MOC_stelnr where MOC_enhed = '" & esk & "' and MOC_sortering = '" & statusQ & "' order by " & sOrderBy & " " & sSort

i sætningen: where MOC_enhed = '" & esk & "'

prøver jeg så at indsætte værdien af esk således:

default.asp?mode=visstatus&esk=ESK727,ESK730&statusQ=1&OrderBy=MOC_enhed

men jeg får intet output...
hvorfor ik?
Avatar billede snakeeyz Nybegynder
28. april 2005 - 18:43 #1
Så vidt jeg kan forstå, vil du hente de to værdier ikke?

Prøv med:

strSQL = "select * from bem right join fly_status on bem.Bstel = fly_status.MOC_stelnr where MOC_enhed IN (" & esk & ") and MOC_sortering = '" & statusQ & "' order by " & sOrderBy & " " & sSort

Tror det virker :-)
Avatar billede mskjoldp Novice
28. april 2005 - 18:48 #2
prøver...
Avatar billede mskjoldp Novice
28. april 2005 - 18:51 #3
damn

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Operatoren In er brugt uden () i forespørgselsudtrykket "MOC_enhed IN = (ESK727) and MOC_sortering = '1'".
/fsnskp/RT-SRS/visstatus.asp, line 53
Avatar billede snakeeyz Nybegynder
28. april 2005 - 19:09 #4
hmm...  havde du ikke to værdier i den før? mener ikke man kan lave en IN med 1 værdi.
Avatar billede mskjoldp Novice
28. april 2005 - 19:20 #5
nope, havde ikke to værdier i den før, men prøver at oprette en selvstændig SQL for denne type...
Avatar billede mskjoldp Novice
28. april 2005 - 19:25 #6
hmm bruger nu denne kode, men det henter alle typer af værdier i feltet MOC_enhed:

skp = Request.QueryString("skp1") & "," & Request.QueryString("skp2")

sammen med:

strSQL = "select * from bem right join fly_status on bem.Bstel = fly_status.MOC_stelnr where MOC_enhed IN = (" & skp & ") and MOC_sortering = '" & statusQ & "' order by " & sOrderBy & " " & sSort

... der mangler ikke meget, hvad kan det mon være?
Avatar billede snakeeyz Nybegynder
28. april 2005 - 19:36 #7
prøv lige at udskrive sætningen med dine værdier i
Avatar billede mskjoldp Novice
28. april 2005 - 19:56 #8
strSQL:
strSQL = "select * from bem right join fly_status on bem.Bstel = fly_status.MOC_stelnr where MOC_enhed = '" & esk & "' and MOC_sortering = '" & statusQ & "' order by " & sOrderBy & " " & sSort


ved:
default.asp?mode=visstatus&esk=ESK730,ESK727&statusQ=1&OrderBy=MOC_stelnr&sort=ASC

udskrift:
select * from bem right join fly_status on bem.Bstel = fly_status.MOC_stelnr where MOC_enhed = 'ESK730,ESK727' and MOC_sortering = '1' order by MOC_stelnr ASC 

hvor:
MOC_enhed = esk
MOC_sortering = statusQ

både esk og statusQ kommer fra Request.Querystring's
Avatar billede busschou Praktikant
28. april 2005 - 21:11 #9
bare lige en mente...
Er det ikke pænt usikkert at lave sin query ud fra noget i url?...
Eller tjekker du for sql injektion et sted?
Avatar billede mskjoldp Novice
28. april 2005 - 21:16 #10
kender ikke til injektion. Hvorfor er det usikkert at bruge url?

denne faste SQL fra ACCESS virker:
strSQL = "select * from bem right join fly_status on bem.Bstel = fly_status.MOC_stelnr WHERE (((fly_status.MOC_enhed)='ESK730') AND ((fly_status.MOC_sortering)='1')) OR (((fly_status.MOC_enhed)='ESK727') AND ((fly_status.MOC_sortering)='1'))"
Avatar billede busschou Praktikant
28. april 2005 - 21:21 #11
sql injection er når en misbruger din sql.. hvis det er muligt at indtaste ' i din url så opfattes det i din kode som sql. Derved kan man direkte fra url´en ændre din sql sætning og fx skrive noget med 'Or Drop Table' ... hvor efter hele din tabel slettes :o(
Så på alle dine request.querystring("felt") ... bør du lave om til replace(request.querystring("felt"),"'","''")
Så udskifter den hvis der er et ' med to '' ...derved kan det ikke misbruges
Blot for din egen sikkerhed :o)
Avatar billede mskjoldp Novice
28. april 2005 - 21:54 #12
takker busschou. Det er gjort :D
Avatar billede mskjoldp Novice
29. april 2005 - 10:45 #13
busschou hvis du vil dele points så smid et svar :)
Avatar billede busschou Praktikant
29. april 2005 - 10:45 #14
jamen jo tak da :o)
Avatar billede mskjoldp Novice
29. april 2005 - 10:46 #15
selv :)
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



Seneste spørgsmål Seneste aktivitet
I dag 14:04 Pixeline cd’er til PC Af Mathilde i Windows
I dag 01:14 Windows 10 - IIS 10 Af bsn i Windows
I går 20:39 Boot fra USB Af poulmadsen i Windows
I går 11:43 Gmail-ikon på skrivebordet Win 10 Af ErikHg i Fri debat
I går 09:22 Lopslag Af Luffe i Excel