Annorlunda uttryckt:
Ta strängen som är argument till SafeSql, och skriv ut den på raden innan du skickar frågan. Kopiera in värdet på den strängen här (som den ser ut i fönstret) när du kör skriptet .
27 svar · 1 201 visningar · startad av SGuncel · sida 2 av 2
Annorlunda uttryckt:
Ta strängen som är argument till SafeSql, och skriv ut den på raden innan du skickar frågan. Kopiera in värdet på den strängen här (som den ser ut i fönstret) när du kör skriptet .
<%
IF Request.Querystring("do")="search" then
Set ObjRS = ObjConn.Execute("SELECT * FROM tblusers WHERE userName LIKE '%"&SafeSQL(Request.Form("userName"))&"%' and userSex LIKE "&SafeSQL(Request.Form("userSex"))&" and userAge BETWEEN "&SafeSQL(Request.Form("userAge"))&" and "&SafeSQL(Request.Form("userAge2"))&" and userLive LIKE '%"&SafeSQL(Request.Form("userLive"))&"%'" & " order by userName")
IF ObjRS.Eof then
Response.Write "Inga medlemmar hittades."
else
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0" id="table6">
<tr>
<td style="width:25%;">Användarnamn</td>
<td style="width:25%;">Kön</td>
<td style="width:25%;">Ålder</td>
<td style="width:25%;">Bor</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0" id="table7">
<tr>
<td width="100%" style="border-top: 1px solid Silver;"><img src="../_Grafik/Pix.gif" width="0" height="1"></td>
</tr>
</table>
<%
Do until ObjRS.Eof
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0" id="table5">
<tr>
<td style="width:25%;"><% Response.Write "<a href=""profil.asp?userId="&Server.HtmlEncode(ObjRS("userId"))&""">"&Server.HtmlEncode(ObjRS("userName"))&"</a>" %></td>
<td style="width:25%;"><% Response.Write ""&Server.HtmlEncode(ObjRS("userSex"))&"" %></td>
<td style="width:25%;"><%=Age(DateSerial(ObjRS("userAgeYear"), ObjRS("userAgeMonth"), ObjRS("userAgeDay")))%> år</td>
<td style="width:25%;"><% Response.Write ""&Server.HtmlEncode(ObjRS("userLive"))&"" %></td>
</tr>
</table>
<%
ObjRS.Movenext
Loop
ObjRS.Close : Set ObjRS = Nothing
ObjConn.Close : Set ObjConn = Nothing
End if
End if
%>
Alltså fortfarande: Visa INTE koden, visa vad som blir resultatet när koden körs.
Alltså... ASP är inte ett språk jag kan, men i princip...
sqlQ = "SELECT * FROM tblusers WHERE userName LIKE '%"&SafeSQL(Request.Form("userName"))&"%' and userSex LIKE '%"&SafeSQL(Request.Form("userSex"))&"%' and userAge BETWEEN "&SafeSQL(Request.Form("userAge"))&" and "&SafeSQL(Request.Form("userAge2"))&" and userLive LIKE '%"&SafeSQL(Request.Form("userLive"))&"%'" & " order by userName"
< kod för att visa sqlQ på skärmen >
Set ObjRS = ObjConn.Execute(sqlQ)
Är de inte samma sak som voigtann1 sa innan och vi testade?
Vi vill se hur din senaste SQL sträng ser ut som du försöker få igång. Vad ASPn ska göra är inte alls viktigt i detta fall just nu.
Det här är man senaste SQL Sträng, som jag försöker få igång.
SELECT * FROM tblusers WHERE userName LIKE '%"&SafeSQL(Request.Form("userName"))&"%' and userSex LIKE '%"&SafeSQL(Request.Form("userSex"))&"%' and userAge BETWEEN "&SafeSQL(Request.Form("userAge"))&" and "&SafeSQL(Request.Form("userAge2"))&" and userLive LIKE '%"&SafeSQL(Request.Form("userLive"))&"%'" & " order by userName
Fortfarande vill vi ha ut din SQL sträng som du försöker generera... dvs vad userName i ditt form innehåller, userSex osv.
Det du har postat ovan är hur SQL-strängen ser ut i ditt skript, dvs där du sätter ihop den. MEN det du skickar till databasen när skriptet körs är den evaluerade strängen, och det är DEN vi vill se.
Låt oss säga att din fråga var betydligt enklare:
SELECT * FROM tblusers WHERE userName LIKE '%"&SafeSQL(Request.Form("userName"))&"%"'
Om nu den form som du hämtar värdet ifrån innehåller Kalle så kommer den sträng som skickas till databasen att se ut så här:
SELECT * FROM tblusers WHERE userName LIKE '%Kalle%'
Om formen innehåller urk så skickas:
SELECT * FROM tblusers WHERE userName LIKE '%urk%'
Så: