Avatar billede klas Juniormester
25. september 2005 - 21:39 Der er 11 kommentarer og
1 løsning

Select from DB WHERE xxx - Hvordan ?

Hejsa,

nok et meget simpelt spørgsmål - Jeg prøver at lave en database hvor jeg ligger en mase billeder ud. Billederne skal kunne opdeles i kategorier og så vises ved fx. at sige

http://www.klas.dk/gl/billedekat.asp?kat=1sne

dette skulle så gerne vise alle de billeder som i mit felt "bem" har fået indtastet værdien "1sne"

Min kode ser således ud:
<%
   
kat = request.Querystring("kat")
sqlBilleder = "SELECT * FROM gl WHERE bem=" & kat
Set rsBilleder = myConn.Execute(sqlBilleder)
%>
<table width="748" align="center" cellspacing="0" cellpadding="0" border="0">
<tr><td align="center" width="748">


    <%
    Do While Not rsBilleder.EOF
%>

<a href="billeder/<%=rsBilleder("filnavn")%>.jpg"><% response.write "<img border='0' src='billeder/thumbs/" & rsBilleder("filnavn") &".jpg'>"%></a>&nbsp;

<%
rsBilleder.movenext
loop
%>


På forhånd tak  :)
Avatar billede erikjacobsen Ekspert
25. september 2005 - 21:53 #1
Måske skal du bare

sqlBilleder = "SELECT * FROM gl WHERE bem='" & kat & "'"
Avatar billede klas Juniormester
25. september 2005 - 22:04 #2
så nemt kunne et gøres - tak for det  :)

smid venligst et svar
Avatar billede kalp Novice
25. september 2005 - 22:04 #3
sqlBilleder = "SELECT * FROM gl WHERE bem = "' & request.Querystring("kat") &'""
Avatar billede kalp Novice
25. september 2005 - 22:05 #4
Nåh.. for sent.. heh
Avatar billede erikjacobsen Ekspert
25. september 2005 - 22:07 #5
Nej, det er faktisk ikke så nemt, selv om du synes det virker. Hvad er det nu det hedder ... jo: "Sikker programmering", du skal beskytte dig mod sql-injektion:

sqlBilleder = "SELECT * FROM gl WHERE bem='" & replace("'","''",kat) & "'"

Og jeg samler slet ikke på point, tak.
Avatar billede softspot Forsker
25. september 2005 - 22:11 #6
Det er vel:

replace(kat,"'","''")
Avatar billede erikjacobsen Ekspert
25. september 2005 - 22:15 #7
Det har du ret i, softspot.
Avatar billede klas Juniormester
25. september 2005 - 22:16 #8
Ikke helt forstået, ved ikke hvad en SQL-injektion er.

Men den linie du skriver, er den så mere sikker at bruge ?

selvom du ikke samler på dem, syntes jeg alligevel at du har fortjent dem  :)

Btw. hvis du har tid må du også gerne kigge på dette nok også simple problem: http://www.eksperten.dk/spm/650889
Avatar billede erikjacobsen Ekspert
25. september 2005 - 22:24 #9
Du skal bruge den som softspot skriver - og aldrig stole på brugerinput. Ellers lærer du om sql-injection på den hårde måde en dag. Google er din ven - brug lidt tid på at finde ud af hvad det handler om.

Og jeg samler ikke på point, tak. Det skulle vel ikke være nødvendigt at gentage det.
Avatar billede klas Juniormester
25. september 2005 - 22:33 #10
helt ok, men så tak for hjælpen begge 2.

Softspot, vil du være venlig at smide et svar ?
Avatar billede softspot Forsker
25. september 2005 - 22:35 #11
klas, du er generøs, men jeg vil ikke tage point for det beskedne bidrag. Stik du dem bare i din egen lomme og bruge dem på et andet spørgsmål... ellers tak :)
Avatar billede klas Juniormester
25. september 2005 - 22:38 #12
Jammen dog, så gir jeg en is hvis i en dag kommer til grønland  ;)
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