Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.
/las2.asp, line 54
Sista raden i följande stycke är rad 54
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM kommentarer WHERE artikelid = " & Request.Querystring("id")
SQL = SQL & " ORDER BY datum DESC"
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
Har sökt lite på wF angående problemet men hittade inget svar. :( Så nu undrar jag om nån av er där ute har lösningen på problemet?
Jag vet inte lösningen till ditt problem, men däremot ser jag direkt att den koden du använder har ett säkerhetshål, eftersom den möjliggör s k SQL injection.
Se till att omvandla Request.Querystring("id") till ett heltal, annars kan en hackare förändra SQL-frågan, och t ex radera hela din databas.
Tack för att ni påpekade att min kod var en säkerhetsrisk. (y) :(
Iaf så så här hela min kod ut så här:
<!-- #include file = "adovbs.inc" -->
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("artiklar/artiklar.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM artiklar WHERE id = " & Request.Querystring("id")
SQL = SQL & " ORDER BY rubrik"
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
%>
<tr>
<td class="rubrik"><% =RecSet("rubrik") %></td>
</tr>
<tr>
<td class="ingress"><% =RecSet("ingress") %></td>
</tr>
<tr>
<td class="brodtext"><%text = server.htmlencode(RecSet("innehall"))%><%= Replace(text,vbCrLf,"<br>")%></td>
</tr>
<tr>
<td class="ingress">Skriven av: <a href="mailto:<%=RecSet("epost")%>"><%=RecSet("av")%></a> </td>
</tr>
<tr>
<td class="ingress">Datum: <%=RecSet("datum")%> </td>
</tr>
<tr>
<td><a href="JavaScript:history.back()"><img src="graphs/pil_back.gif" border="0" width="19" height="13" alt=""></a></td>
</tr>
<%
RecSet.Close
Connect.Close
Set RecSet = Nothing
Set Connect = Nothing
%>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("artiklar/artiklar.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM kommentarer WHERE artikelid = " & Request.Querystring("ID")
SQL = SQL & " ORDER BY datum DESC"
[B] RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic[/B] <- rad 54
Do Until RecSet.EOF
%>
<%=RecSet("namn")%><br>
<%=RecSet("text")%>
<%
RecSet.MoveNext
Loop
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
%>
<%
IF not Request.Form("namn") = "" then
namn = Request.Form("namn")
text = Request.Form("text")
artikelid = Request("id")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("artiklar/artiklar.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "Select * From kommentarer"
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
RecSet.AddNew
RecSet("namn") = namn
RecSet("text") = text
RecSet("artikelid") = artikelid
RecSet("datum") = date
RecSet.Update
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
end if
%>
<tr>
<td>
<form name="form1" method="post" action="las2.asp?<%=request.querystring%>">
<table width="300" border="0">
<tr>
<td width="75"><b><font face="Verdana" size="1">Namn:</font></b></td>
<td width="225"> <b><font face="Verdana" size="1">
<input type="text" name="namn" style="border: 1px solid; font-family: verdana; font-size: 8pt">
</font></b></td>
</tr>
<tr>
<td width="75"><font face="Verdana" size="1"><b>Innehåll:</b></font></td>
<td width="225"><font size="1" face="Verdana"> </font></td>
</tr>
</table>
<font face="Verdana"> </font>
<table border="0">
<tr>
<td><font face="Verdana">
<textarea name="text" wrap="VIRTUAL" cols="30" style="border: 1px solid; font-family: verdana; font-size: 8pt" rows="10"></textarea>
</font></td>
</tr>
<tr>
<td>
<input type="submit" name="Skicka" value="Lägg till" style="border: 1px solid; font-family: verdana; font-size: 8pt">
</td>
</tr>
</table>
<font face="Verdana"> </font>
</form>
</td>
</tr>
och felet blir det här:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.
/las2.asp, line 54