jag har en data bas med ett fält som heter "bor", och nu skulle jag vilja ha en sida som endast skriver ut vart man bor t.tex. om man endast vill lista dem som bor i stockholm, bor.asp?stad=stockholm, då ska endast dem som har "stockholm" i fältet "bor" skrivs ut på sidan. <code> Andreas: var ska jag sätta in den koden? Innan eller efter databaskopplingen? JAg skulle skrivit så här: Andreas borde det inte vara I detta fallet behvs inte "" & i första lägget. Skrev det automatiskt. och det gamla vanliga, PREVENT SQL INJECTION ATTACKS, JAg är fullt medveten om det. Det är ju det koden skyddar mot. Den tillåter bara numeriska värden. Om man anger något annat. T.Ex. En SQL sträng. Kommer värdet att inte vara numeriskt.Databas sortering?
Sv: Databas sortering?
Dim strSQL
Dim strStad
strStad = "" & Request.Querystring("stad")
If Len(strStad) > 0 Then
strSQL = "SELECT * FROM TabellNamn WHERE bor='"& Replace(strStad, "'", "''") &"'"
Else
strSQL = "SELECT * FROM TabellNamn"
End If
</code>Sv: Databas sortering?
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\projektarbete\databas\data.mdb"
If Request.QueryString("sortera") = "ID" OR Request.QueryString("sortera")= "bor" OR Request.QueryString("sortera") = "namn" Then
Set RecSet = Server.CreateObject("ADODB.Recordset")
If Request.QueryString("sortera") = "ID" Then
Addera = "SELECT * FROM beställningar ORDER BY ID"
ElseIf Request.QueryString("sortera") = "bor" Then
Addera = "SELECT * FROM beställningar ORDER BY pris"
ElseIf Request.QueryString("sortera") = "namn" Then
Addera = "SELECT * FROM beställningar ORDER BY namn"
End If
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
%>Sv: Databas sortering?
<code>
<%
Dim strSQL
Dim strStad
Dim Connect
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\projektarbete\databas\data.mdb"
strStad = "" & Request.Querystring("stad")
If Len(strStad) > 0 Then
strSQL = "SELECT * FROM beställningar WHERE bor='"& Replace(strStad, "'", "''") &"'"
Else
strSQL = "SELECT * FROM beställningar"
End If
Select Case Request.QueryString("sortera")
Case "ID"
strSQL = strSQL & " ORDER BY ID"
Case "bor"
strSQL = strSQL & " ORDER BY pris"
Case "namn"
strSQL = strSQL & " ORDER BY namn"
End Select
RecSet.Open strSQL, Connect
%>
</code>Sv: Databas sortering?
<code>
SELECT CASE "" & Request...
</code>
för att vara konsekvent menar jag ;o)Sv: Databas sortering?
Det kan nämligen bli problem om man använder ett tomt värde med isnumeric. eftersom returnärdedet är av datatypen Empty. Vilket ger 0 om den jämförs med tal och "" om den jämförs med text.
<code>
Dim strSQL
Dim strNumber
strNumber = "" & Request.Querystring("Number")
If IsNumeric(strNumber) Then
strSQL = "SELECT * FROM TabellNamn WHERE Number = " & strNumber
Else
'Not OK
End If
</code>
att anropa detta exempel utan attange Number eller använda "" &. Så kommer värdet att tolkas som tal av IsNumeric. Men bli tomsträng när den infogas i SQL satsen.
<code>
Dim strSQL
Dim strNumber
strNumber = Request.Querystring("Number")
If IsNumeric(strNumber) Then
strSQL = "SELECT * FROM TabellNamn WHERE Number = " & strNumber
Else
'Not OK
End If
</code>Sv: Databas sortering?
vet du inte vad det är!?
Sök webben efter: "SQL INJECTION ATTACK" lär ge många hits...
Det handlar om att se till att dina besökare på webbplatsen inte får för sig att skicka in data till din databas som gör dumheter, ex.vis raderar allt i dbn, eller radera fysiska filer på din dator m.m....
det är ett stort ämne, ingen ide att gå in på det här, men kan tips om siten www.devarticles.com som har en utmärkt artikel om det här ämnet.Sv: Databas sortering?
Jag förstår inte vad du riktar kritik på och varför.
Om du kan påvisa var man skulle kunna genomför en attack på min kod tar jag gärna till mig det. För jag kan inte se något sådan möjlighet.